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月前
|
C# 开发工具 数据安全/隐私保护
C# 实现 Word 加盖骑缝章效果
C# 实现 Word 加盖骑缝章效果
|
2月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
106 2
|
2月前
|
C#
C# gridControl 导出Excel
C# gridControl 导出Excel
|
2月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
2月前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格
|
2月前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
2月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
2月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
9天前
|
存储 C# 开发者
C# 编程基础:注释、变量、常量、数据类型和自定义类型
C# 编程基础:注释、变量、常量、数据类型和自定义类型
14 1