最近使用NPOI做了个导出Word文档的功能,关于使用.NET Core 导出Word文档的方式有很多。最终我为什么选择了NPOI来实现了这个功能,首先是NPOI是一个开源,免费且容易上手的第三方框架(并且现在已支持.NET Core,GitHub源码地址:https://github.com/tonyqus/npoi)。因为之前使用NPOI导出Execl比较多,这次第一次使用NPOI 来导出Word文档还真没有什么头绪。首先看了下GItHub中的源码有一个简单Word导出的示例,然后在看了网上有很多关于NPOI导出Word文档的案例,发现一个特点网上的好像都差不多,对于我而言网上的这些案例完全能够实现我的这个功能,但是感觉看了网上这些案例对NPOI实例化段落,表格和设置相关样式不太清楚(可能是因为自己笨),并且假如使用网上的方法来实现我的功能的话代码量会比较大,而且感觉代码非常的冗余(我是一个追求代码简洁的人,怎么能够容忍这样的事情发生呢!),因此通过查阅了一些资料和自己的理解,把关于使用NPOI导出Word时所要涉及的一些段落,表格样式做了相关注释,和把段落和表格的创建实例,设置文字、字体、对齐方式都封装了起了(为了少写代码),文章末尾会附上一个完整的案例下载地址。

一、首先引入NPOI NuGet:

版本说明:

  NPOI 2.4.1 (注意不同版本可能使用的姿势有点小差别)

程序包管理器控制台输入一下命令安装:

1
Install-Package NPOI -Version 2.4.1

通过NuGet管理解决方案安装:

回到顶部

二、导出的Work文档内容格式样式:

三、NPOI中的XWPFRun文本对象创建和属性简单概述:

XWPFRun文本对象说明:

  XWPFRun是段落的文本对象,先创建段落对象才能够在段落对象的基础上创建文本对象,并设置相关文本样式。

如下所示:

四、NPOI生成Word完整代码:

总结:

  写到最后我只想说我太难了,为了实现我想要的这个样式,通过不断的查阅资料,理解NPOI中的段落,文本基本属性。最终在我生成第22个word时,总算是达到了我要的效果。这里我将自己在网上查阅的一些资料和自己的实践心得分享给大家,希望能够帮到大家,别忘了给我star哟。

GitHub完整示例地址:https://github.com/YSGStudyHards/NPOI-Export-Word  

.NET Core使用NPOI导出复杂Word详解相关推荐

  1. [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

    深入浅出 Cocoa 之 Core Data(1)- 框架详解 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 Core data 是 Cocoa 中处 ...

  2. Excel导出带图片详解

    Excel导出带图片详解 导出模板 一.引入的jar <dependency><groupId>org.apache.poi</groupId><artifa ...

  3. python读取word详解【from docx import Document】

    python读取word详解[from docx import Document] 目录 python读取word详解[from docx import Document] 前言 环境 示例字符串 下 ...

  4. c# 实现hello word 详解版

    c# 实现hello word 详解版 前言:超级适合真正零基础的人 工具:Visual Studio 2019 了解: .net/dotnet:一般指.Net Framework框架->一种平 ...

  5. C#NPOI导出至Word

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

  6. flask导出Excel报表详解

    在日常开发中,导出数据报表可谓必备技能,在后台管理中,很多模块都需要数据报表,现在我们一起来学习一下 flask 如何导出数据报表. 没有实例的讲解很不容易理解,本文我们依然从实际项目来讲解,对 &q ...

  7. java实现excel的导入导出(poi详解)

    经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个阿帕奇公司的一个项目,后来被扩充了.是比较好用的excel导出工具. 下面来认识一下这个它吧. 我们知道要 ...

  8. ASP.NET Core MVC 源码学习:详解 Action 的匹配

    前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 ...

  9. python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...

    在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...

最新文章

  1. BufferedReader
  2. spring boot四:探究hello world
  3. docker容器的构建
  4. Oracle LAST_DAY(d)
  5. 关于VS环境下制作和使用静态库和动态库
  6. python百钱买百鸡问题答案_PHP/Python---百钱百鸡简单实现及优化
  7. 【已解决】抱歉,由于某种原因,PowerPoint 无法加载D:\mathtype\Office Support\64\MathType(PowerPoint 2016).ppam加载项。
  8. Web前端-JavaScript基础教程下
  9. 科锐c语言,科锐C语言学习视频,资源教程下载
  10. 人人商城小程序消息服务器配置,人人商城小程序订阅消息设置方法和几个坑!...
  11. 小白入门该如何学习PR视频剪辑软件及辅助工具的使用呢?
  12. 从sockaddr_ipx到AF_IPX协议分析(一)
  13. 【Python】str()函数
  14. 计算机桌面图标任意排列,教你win7电脑桌面图标怎么随意摆放
  15. php 支付宝实名认证
  16. 客厅的走廊应该怎么去设计
  17. 102-并发编程详解(中篇)
  18. 如何学C语言,新手必看!
  19. 哪位老哥熟悉vue fullcalendar的,能帮忙看看为啥addEvent没效果吗
  20. Ubuntu18.04安装QT5

热门文章

  1. Teams Tab的Single Sign-On
  2. Zoom Host可以真正看到您的所有私人消息吗?
  3. 火狐web开发清楚缓存_如何使用Firefox的Web开发工具
  4. twitter批量取消关注_如何在Twitter上取消阻止“潜在敏感内容”
  5. java获取前端json数据_java如何获取前端ajax传来的json对象
  6. 翻译:用户变量(User-Defined Variable)(已提交到MariaDB官方手册)
  7. Linux文件系统之df
  8. 基于jQuery的ajax系列之用FormData实现页面无刷新上传
  9. linux命令chown和chmod什么区别
  10. 换种方式去分页(转)