近期有需求根据数据库信息导出至Word文档,之前知道NPOI可以导出Word文档,因一直没有使用过,所以具体用法未知。

经过多个前人网页的过滤,发现NPOI的资料比较少,最终发现一个网页,对NPOI对Word的导出有了实质性的突破。
感谢这个作者!

下面是自己总结的NPOI对Word导出的源码片段!

1 Nuget安装NPOI

通过Nuget管理器,安装NPOI即可

2 帮助类

WordHelper.cs
这个类并不是帮助类,只是根据自己的需求,封装了几个方法。

 public class WordHelper{//1 创建标题/// <summary>/// 创建标题       /// /// </summary>/// <param name="doc"></param>/// <param name="title"></param>public void SetDocTitle(XWPFDocument doc, string title){XWPFParagraph p0 = doc.CreateParagraph();//创建段落p0.Alignment = ParagraphAlignment.CENTER;//居中显示XWPFRun r0 = p0.CreateRun();//设置字体r0.FontFamily = "宋体";//设置字体大小r0.FontSize = 20;//字体是否加粗,这里加粗了r0.IsBold = true;r0.SetText(title);//写入文本}/// <summary>/// 创建H1/// </summary>/// <param name="doc"></param>/// <param name="title"></param>public void SetDocH1(XWPFDocument doc, string title){XWPFParagraph p0 = doc.CreateParagraph();//创建段落p0.Alignment = ParagraphAlignment.LEFT;//靠左显示XWPFRun r0 = p0.CreateRun();r0.IsCapitalized = true;//设置字体r0.FontFamily = "宋体";//设置字体大小r0.FontSize = 16;//字体是否加粗,这里加粗了r0.IsBold = true;r0.SetText(title);//写入文本}public void SetDocH2(XWPFDocument doc, string title){XWPFParagraph p0 = doc.CreateParagraph();//创建段落p0.Alignment = ParagraphAlignment.LEFT;//靠左显示XWPFRun r0 = p0.CreateRun();r0.IsCapitalized = true;//设置字体r0.FontFamily = "宋体";//设置字体大小r0.FontSize = 14;//字体是否加粗,这里加粗了r0.IsBold = true;r0.SetText(title);//写入文本}public void SetTableTitle(XWPFDocument doc, string title){XWPFParagraph p1 = doc.CreateParagraph();p1.Alignment = ParagraphAlignment.LEFT;XWPFRun r1 = p1.CreateRun();r1.SetText(title);}public void SetTable(XWPFDocument doc, DataTable dt){if (dt != null && dt.Rows.Count > 0){int rowCount = dt.Rows.Count;int colCount = dt.Columns.Count;XWPFTable table = doc.CreateTable(rowCount + 1, colCount);int colWidth = 38 / colCount;colWidth = colWidth == 0 ? 1 : colWidth;//设置宽度for (int i = 0; i < colCount; i++){table.SetColumnWidth(i, (ulong)colWidth * 256);//设置列的宽度}//填写表的第一行for (int i = 0; i < colCount; i++){string colName = dt.Columns[i].ColumnName;table.GetRow(0).GetCell(i).SetText(colName);}//填写表的内容for (int i = 0; i < rowCount; i++){for (int j = 0; j < colCount; j++){string value = dt.Rows[i][j].ToString();table.GetRow(i + 1).GetCell(j).SetText(value);}}}}}

3 调用

             XWPFDocument docx = new XWPFDocument();MemoryStream ms = new MemoryStream();WordHelper wordHelper = new WordHelper();//1 设置标题wordHelper.SetDocTitle(docx, "未注释的表");2 创建模块信息wordHelper.SetDocH1(docx, "1 模块");wordHelper.SetTableTitle(docx, "模块编码名称:" + moduleInfo.ModuleName);//3 创建表的信息DataTable dtTables = TableInfoBiz.GetTableInfoByModule(moduleInfo.ModuleCode);wordHelper.SetTable(docx, dtTables);docx.Write(ms);using (FileStream fs = new FileStream("Word/未找到注释的表.docx", FileMode.Create, FileAccess.Write)){byte[] data = ms.ToArray();fs.Write(data, 0, data.Length);fs.Flush();}ms.Close();

4 总结

  • NPOI 可以生成Word文档
  • NPOI对于Word操作的API解释很少
  • 目前尚未研究出在Word中生成对应 “标题一”,“正文” 等格式的设置。因每个人Word的设置不同,因此感觉NPOI应该没有提供该功能。

NPOI导出Word操作相关推荐

  1. NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable

    NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable 使用NPOI可以对Word中的文本做替换,当遇到表格时,单个表格也可以循环遍历 ...

  2. NPOI导出Word插入图片问题解决方案

    NPOI用版本2.2.0或者2.2.1时导出Word插入图片时,word文档打开报错 解决方案之一:用NPOI 2.1.3版本可以解决 XWPFDocument doc = new XWPFDocum ...

  3. Typora导出word操作指导

    1.按照如下操作 如果第一次导出word文件,会提示让你安装pandoc插件 2.安装pandoc 2.1 下载pandoc https://github.com/jgm/pandoc/release ...

  4. NPOI导出word文档中插入公式总结

    1. XWPFOMath类 XWPFDocument doc = new XWPFDocument(); //创建新行 XWPFParagraph p = doc.CreateParagraph(); ...

  5. .NET Core使用NPOI导出复杂Word详解

    最近使用NPOI做了个导出Word文档的功能,关于使用.NET Core 导出Word文档的方式有很多.最终我为什么选择了NPOI来实现了这个功能,首先是NPOI是一个开源,免费且容易上手的第三方框架 ...

  6. java使用freemaker自定义路径导出Word关键点讲解版

    最近工作遇到需要开发java导出Word操作,这里我选用的模板是freemaker. 导出的前期操作在网络上一找一大把,我这里复述下我的操作: 1.将要导出的模板打到Word中,然后另存为xml格式的 ...

  7. 导出Word遇到的坑及解决方法(一)!

    导出最多的就是Excel了,头一次碰到导出Word,心里那个懵,现在献上具体的导出方法及步骤! 第一步:首先拿到Word模板,你就会想用什么方法来实现?如图所示: 把要填写的内容区域用${}来进行插值 ...

  8. C#NPOI导出至Word

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C#导出至WORD 前言 一.操作步骤 1.写段落以及段落格式的封装 2.创建表格及表格设置 3.创建并加入行 总结 前言 NPOI可 ...

  9. epplus word html,.Net开源Excel、Word操作组件-NPOI、EPPlus、DocX

    一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2 ...

最新文章

  1. pandas将dataframe中的内容为列表(list)的数据列裂变、拆分为多个新的数据列实战:拆分为多个新的数据列(并指定新数据列的名称)、数据列中的列表(不等长)拆分为多个新的数据列产生NaN
  2. 华北计算机研究无人机,飞马D200无人机在华北某环境地调项目中的应用案例
  3. php中储存数据类型,PHP中的数据类型
  4. python爬虫案例-python爬虫详细解析附案例
  5. Intel Realsense 图像投影(Projection)翻译
  6. 内网渗透-域内信息收集
  7. jms java client mq_将Java客户端(JMS)连接到IBM MQ时出现问题
  8. Ant Design Vue list表格组件
  9. Eclipse3.2下JFace和SWT工程环境配置方法
  10. java控制台输出五行字符串_java五行代码导出Excel
  11. html密码验证 并跳转页面,vuejs 实现前后端分离登录验证和页面自动跳转
  12. Linux服务器安装JavaWeb环境(一) Jdk,Maven,Nginx,Tomcat
  13. python自动化办公入门-[Python] 自动化办公 docx操作Word基础代码
  14. C#创建自定义配置节点
  15. html立体音乐相册源码,印记工坊立体音乐相册 v 1.8 官方版|印记工坊立体音乐相册官方版|印记工坊立体音乐相册电脑版_最火软件站...
  16. vscode unins000.exe报错
  17. 【USACO题库】3.2.4 Feed Ratios饲料调配
  18. ant 的详细的入门教程
  19. oracle角色(role)和权限(privilege)
  20. 工业软件CAD、CAE、CAM介绍

热门文章

  1. CarSim软件转向系统传动比如何得到?
  2. 鼎甲第14期 Back You Up 公开课:迪备在Oracle DataGuard环境中的使用
  3. 特征工程(BKT应用)
  4. Deep Knowledge Tracing (深度知识追踪)
  5. 笔记本电脑拆机并为风扇清灰的方法
  6. 小米手机 安装AndroidAuto后连接车机,提示android auto出现错误 通信错误16
  7. 中国移动ARM芯片CM32M101A资料下载工具tool下载链接
  8. SAP平行帐套定义和使用
  9. 【PCB专题】Allegro如何导入网表
  10. 餐饮业综合服务平台 智慧未来