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

点击上方“dotNET名人堂”,选择“”

用学习的姿态,步入工作的状态


前言

最近使用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管理解决方案安装:

640?wx_fmt=png

640?wx_fmt=png

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

 640?wx_fmt=png

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

XWPFRun文本对象说明:

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

如下所示:

640?wx_fmt=png

XWPFRun文本对象的属性比较多,以下我简单说明常用的几种方式:

640?wx_fmt=png


NPOI中关于XWPFRun属性的更多使用技巧,请阅读源码:

源码地址:https://github.com/tonyqus/npoi/blob/master/ooxml/XWPF/Usermodel/XWPFRun.cs


四、NPOI生成Word完整代码:

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


总结

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

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

原文链接:https://www.cnblogs.com/Can-daydayup/p/11588531.html

640?wx_fmt=jpeg

点击 【在看】与好朋友一起分享
### 回答1: .NET 可以使用 NPOI 来将 Word 文件转换为 PDF。 首先,你需要安装 NPOI 库。这可以通过在 Visual Studio 的包管理器控制台(PMC)中运行以下命令来完成: ``` Install-Package NPOI ``` 然后,你可以使用 NPOI 的 HWPFDocument 类读取 Word 文件,并使用 iTextSharp 库将它转换为 PDF。 下面是一个示例代码,展示了如何使用 NPOI 和 iTextSharp 将 Word 文件转换为 PDF: ```csharp using NPOI.HWPF.Extractor; using NPOI.HWPF.UserModel; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; // 读取 Word 文件 string wordFile = @"C:\temp\example.doc"; HWPFDocument doc = new HWPFDocument(new FileStream(wordFile, FileMode.Open)); // 使用 NPOI 读取文本内容 WordExtractor extractor = new WordExtractor(doc); string text = extractor.Text; // 使用 iTextSharp 创建 PDF 文件 string pdfFile = @"C:\temp\example.pdf"; using (FileStream fs = new FileStream(pdfFile, FileMode.Create)) { Document document = new Document(); PdfWriter writer = PdfWriter.GetInstance(document, fs); document.Open(); // 将文本内容写入 PDF document.Add(new Paragraph(text)); document.Close(); writer.Close(); } ``` 请注意,这是一个简单的示例,并未保留 Word 文件中的格式、图片等内容。如果你需要保留这些内容,可以使用其他库,例如 Aspose.Words 来完成转换。 ### 回答2: 使用NPOIWord文件转换为PDF可以实现文档格式转换并且保持原有样式的一致性。在使用NPOI进行转换的过程中,需要采取以下步骤: 1. 引入NPOI库:首先在项目中安装NPOI库,然后在代码中引入相关的命名空间。 2. 打开Word文件:使用NPOI打开需要转换的Word文件,读取其中的内容。 3. 创建PDF文档:使用NPOI创建一个新的PDF文档。 4. 复制样式和内容:将Word文件中的样式和内容复制到PDF文档中。可以通过遍历Word文件中的各个段落、表格、图片等元素,并将其逐个复制到PDF文档中。 5. 设置文件属性:为PDF文档设置一些属性,如标题、作者、创建日期等。 6. 保存PDF文件:使用NPOI保存生成的PDF文档。 需要注意的是,NPOI是一个针对Office文件的.NET类库,可以处理Word、Excel、PowerPoint等文件格式的读写操作。在使用NPOI进行Word转PDF的过程中,我们需要选择合适的版本,并根据相关的文档进行调用。同时,由于NPOI的API较为复杂,对于一些特殊格式的Word文档,可能需要进行一些额外的处理。最后生成的PDF文件应该与原Word文件的格式基本一致。 总结而言,使用NPOIWord文件转换为PDF可以实现文件格式的转换,并保持原有样式的一致性。但是需要根据具体的需求进行调用和处理,同时对NPOI库的使用要有一定的了解。 ### 回答3: 使用NPOI可以将Word文件转换为PDF。NPOI是一个开源库,用于在.NET平台上处理Microsoft Office文档,包括Word、Excel和PowerPoint。通过使用NPOI,我们可以读取、修改和创建各种Office文档。 要将Word文件转换为PDF,我们需要实现以下步骤: 1. 首先,我们需要将Word文件加载到内存中。可以使用NPOIWord操作类来打开和读取Word文档。 2. 接下来,我们需要使用NPOI的PDF操作类来创建一个新的PDF文档。 3. 然后,我们需要将Word的内容逐一复制到PDF文档中。可以使用NPOI的XWPFParagraph和XWPFRun类来读取Word中的段落和文本内容,并将其添加到PDF文档中。 4. 最后,我们需要保存PDF文档到指定的路径。可以使用NPOI的PdfWriter类将PDF文档写入磁盘。 需要注意的是,NPOI对于一些复杂Word文档可能无法完全支持,因为Word和PDF是不同的文件格式。在进行转换之前,最好先检查Word文档的内容和格式是否适用于转换。 总之,通过使用NPOI库,我们可以方便地将Word文件转换为PDF。这是一个快速、简单且可靠的方法,可以用于在.NET平台上处理Office文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值