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);
        }
相关文章
|
2月前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
4月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
5月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
202 2
|
8月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
144 2
|
8月前
|
C#
C# gridControl 导出Excel
C# gridControl 导出Excel
|
8月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
8月前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格
|
2月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
44 3
|
17天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
67 12