c# EF导出到word

简介: c# EF导出到word

引用库:FreeSpire.Doc

using Spire.Doc;
using Spire.Doc.Documents;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Web;
namespace YFAPICommon.Libs
{
    public class WordTool
    {
        public static void writeWordFile<T>(T neirongData,string title,string path)
        {
            //创建文档
            Document doc = new Document();
            //标题落样式
            ParagraphStyle style1 = new ParagraphStyle(doc);
            style1.Name = "titleStyle";
            style1.CharacterFormat.Bold = true;
            //style1.CharacterFormat.TextColor = Color.Purple;
            style1.CharacterFormat.FontName = "宋体";
            style1.CharacterFormat.FontSize = 18;
            doc.Styles.Add(style1);
            //字段名段落样式
            ParagraphStyle style2 = new ParagraphStyle(doc);
            style2.Name = "zhutiStyle";
            style2.CharacterFormat.FontName = "宋体";
            style2.CharacterFormat.FontSize = 13;
            style2.CharacterFormat.Bold = true;
            doc.Styles.Add(style2);
            //字段内容段落样式
            ParagraphStyle style3 = new ParagraphStyle(doc);
            style3.Name = "neirongStyle";
            style3.CharacterFormat.FontName = "宋体";
            style3.CharacterFormat.FontSize = 11;
            doc.Styles.Add(style3);
            //添加section
            Section s = doc.AddSection();
            //添加标题
            Paragraph para1 = s.AddParagraph();
            para1.AppendText(title);
            para1.ApplyStyle("titleStyle");
            //设置段落对齐方式
            para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
            //设置段落缩进
            para1.Format.AfterSpacing = 15;
            //遍历neirongData对象字段内容
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            object[] values = new object[properties.Count];
            for (int j = 0; j < values.Length; j++)
            {
                var col = properties[j].Name;//字段名
                object obj = properties[j].GetValue(neirongData);
                var str = obj == null ? "" : obj.ToString();//字段内容
                //字段名
                Paragraph zhuti = s.AddParagraph();
                zhuti.AppendText(col);
                zhuti.Format.HorizontalAlignment = HorizontalAlignment.Justify;
                zhuti.ApplyStyle("zhutiStyle");
                zhuti.Format.FirstLineIndent = 10;
                zhuti.Format.AfterSpacing = 15;
                //字段内容
                Paragraph neirong = s.AddParagraph();
                neirong.AppendText(str);
                neirong.Format.HorizontalAlignment = HorizontalAlignment.Justify;
                neirong.ApplyStyle("neirongStyle");
                neirong.Format.FirstLineIndent = 10;
                neirong.Format.AfterSpacing = 15;
            }
            //保存文档
            doc.SaveToFile(path, FileFormat.Docx2013);
        }
    }
}

调用

        public ReturnNode exportToWord(BaseAdminDetailInput input)
        {
            var doc = (from p in dbContext.Project.Where(u => u.id == input.id)
                       select new
                       {
                           项目名称 = p.mingcheng,
                           项目状态 = p.zhuangtai,
                           项目内容 = p.neirong,
                           项目类型 = p.leixing,
                           添加时间 = p.createTime
                       }).FirstOrDefault();
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".docx";
            string file = localPath + fileName;
            WordTool.writeWordFile(doc,doc.项目名称, file);
            return ReturnNode.ReturnSuccess(serverPath+ fileName);
        }
相关文章
word --- 如何设置word里的代码格式,使之有底纹的效果
word --- 如何设置word里的代码格式,使之有底纹的效果
155 0
|
6月前
|
测试技术
【LaTex】10 从md文件导入\导出word (因为:Typora-版本过高不能转换word 报错:Unknown option --atx-headers. )
【LaTex】10 从md文件导入\导出word (因为:Typora-版本过高不能转换word 报错:Unknown option --atx-headers. )
167 7
c# EF导出到word
c# EF导出到word
51 0
|
BI C++
用vb.net 导出word
上回借机房收费系统讲到了用vb.net导出Excel,这次在做项目的过程中,我们不仅学会了将数据打印到VS自带的报表中,还了解了如何用vb.net操作word,将窗体中的内容反映到word中。所以今天要向大家分享一下如何用VB.net 导出word,生成word报表。 第一步,添加引用:
182 0
C# EF ExcelHelper 导入导出
C# EF ExcelHelper 导入导出
114 0
|
C#
C#/VB.NET 操作Word批注(二)——如何插入图片、读取、回复Word批注内容
序 在前面的文章C# 如何插入、修改、删除Word批注一文中介绍了如何操作Word批注的一些方法,在本篇文章中继续介绍操作Word批注的方法。分以下三种情况来介绍: 1. 插入图片到Word批注 2. 读取Word批注 3.
1498 0
|
测试技术 C#
C# /VB.NET操作Word批注(一)—— 插入、修改、删除Word批注
批注内容可以是对某段文字或内容的注释,也可以是对文段中心思想的概括提要,或者是对文章内容的评判、疑问,以及在阅读时给自己或他人起到提示作用。本篇文章中将介绍如何在C#中操作Word批注,主要包含以下要点: 插入Word批注 修改Word批注 删除Word批注 使用工具:Free Spire.
1452 0