NPOI 中 Word 的常用操作 NPOI 是一个流行的开源 Java 库,用于处理 Microsoft Office 文件格式,包括 Word、Excel 和 PowerPoint 等。下面将详细介绍 NPOI 中 Word 的常用操作。 创建文档 需要创建一个新的 Word 文档。使用 NPOI,可以使用 `XWPFDocument` 类来创建一个新的 Word 文档。例如: ```java XWPFDocument m_Docx = new XWPFDocument(); ``` 页面设置 在创建文档后,需要设置页面的大小和方向。NPOI 提供了 `CT_SectPr` 类来设置页面的属性。例如: ```java CT_SectPr m_SectPr = new CT_SectPr(); m_SectPr.pgSz.w = (ulong)16838; // 设置页面宽度为 A4 横向 m_SectPr.pgSz.h = (ulong)11906; // 设置页面高度为 A4 横向 m_Docx.Document.body.sectPr = m_SectPr; ``` 创建段落 在 Word 文档中,段落是最基本的单位。使用 NPOI,可以使用 `XWPFParagraph` 类来创建一个新的段落。例如: ```java XWPFParagraph gp = m_Docx.CreateParagraph(); ``` 设置段落格式 在创建段落后,需要设置段落的格式,例如字体、字号、颜色等。使用 NPOI,可以使用 `CT_P` 类来设置段落的格式。例如: ```java CT_P m_p = m_Docx.Document.body.AddNewP(); m_p.AddNewPPr().AddNewJc().val = ST_Jc.center; // 设置段落水平居中 ``` 设置行距 在 Word 文档中,行距是非常重要的。使用 NPOI,可以使用 `CT_Spacing` 类来设置行距。例如: ```java m_p.AddNewPPr().AddNewSpacing().line = "400"; // 设置行距为 20 磅 m_p.AddNewPPr().AddNewSpacing().lineRule = ST_LineSpacingRule.exact; // 设置行距规则 ``` 创建 RUN 在 Word 文档中,RUN 是一个基本的文字单元。使用 NPOI,可以使用 `XWPFRun` 类来创建一个新的 RUN。例如: ```java XWPFRun gr = gp.CreateRun(); gr.GetCTR().AddNewRPr().AddNewRFonts().ascii = "黑体"; // 设置 RUN 的字体 gr.GetCTR().AddNewRPr().AddNewRFonts().eastAsia = "黑体"; // 设置 RUN 的东亚字体 gr.GetCTR().AddNewRPr().AddNewRFonts().hint = ST_Hint.eastAsia; // 设置 RUN 的东亚字体提示 ``` 段首行缩进 在 Word 文档中,段首行缩进是非常常见的操作。使用 NPOI,可以使用 `Indentation` 方法来设置段首行缩进。例如: ```java gp.IndentationFirstLine = (int)100; // 设置段首行缩进为 100 磅 ``` 计算段首行缩进 在设置段首行缩进时,需要计算出正确的缩进值。使用 NPOI,可以使用 `Indentation` 方法来计算段首行缩进。例如: ```java protected int Indentation(String fontname, int fontsize, int Indentationfonts, FontStyle fs) { // 字显示宽度,用于段首行缩进 Graphics m_tmpGr = this.CreateGraphics(); m_tmpGr.PageUnit = GraphicsUnit.Point; SizeF size = m_tmpGr.MeasureString("好", new Font(fontname, fontsize * 0.75F, fs)); return (int)size.Width * Indentationfonts * 10; } gp.IndentationFirstLine = Indentation("宋体", 21, 2, FontStyle.Regular); // 设置段首行缩进为 2 字符 ``` NPOI 提供了许多基本的操作来处理 Word 文档,包括创建文档、设置页面、创建段落、设置段落格式、设置行距、创建 RUN 和段首行缩进等。使用这些操作,可以轻松地生成 Word 文档。
2026-04-13 16:20:49 90KB NPOI、docx
1
在IT领域,尤其是在文档处理和自动化方面,NPOI是一个非常重要的开源库,它允许开发者在.NET环境中操作Microsoft Office文件,如Word(docx)和Excel(xlsx)。本例主要探讨如何利用NPOI库将图片插入到docx文档中,具体分为inline和anchor两种方法。这两种方法各有特点,适用于不同的应用场景。 我们来看`inline`方法。Inline方式是直接将图片作为文本流插入到文档中,图片的位置和大小通常会随着文本内容的变化而变化。在NPOI中,我们可以使用`XWPFDocument`和`XWPFParagraph`对象来实现。首先创建一个`XWPFDocument`实例,然后在段落中添加图片。关键在于使用`XWPFPictureData`来保存图片数据,并通过`XWPFRun`的`InsertInlinePicture`方法将其插入到文档中。这种方法简单且易于控制图片在文档中的位置。 接下来,我们讨论`anchor`方法。与inline不同,anchor(锚点)方式允许图片相对文档的某个位置固定,不会随文本移动。在NPOI中,我们使用`XWPFHeaderFooterPolicy`、`XWPFParagraph`以及`XWPFPicture`类来实现。锚点分为几种类型,包括四周型、紧密型和穿越型。四周型图片可以贴合文字的四周,紧密型则尽可能紧贴文字,而穿越型图片会穿过文本,图片的一部分位于文本之上,另一部分位于文本之下。实现这些类型的关键在于设置正确的`XWPFPictureAnchor`对象的属性,例如`top`, `left`, `bottom`, `right`等。 在实际应用中,NPOI的这两种图片插入方式可以根据需求灵活选择。例如,如果你希望图片始终与特定文本保持关联,可能需要使用anchor方法。如果图片应该随着文本内容的变化而移动,inline方法可能是更好的选择。同时,为了使代码更易于理解和维护,建议在编写时遵循良好的编程实践,如使用注释、变量命名清晰等。 在提供的压缩包文件`NPOIInsertPictoDocx`中,可能包含了示例代码,你可以通过阅读和运行这些代码来更深入地理解NPOI插入图片到docx的具体实现。在学习过程中,你可以逐步分析代码,理解每个类和方法的作用,同时也可以尝试修改参数,观察不同设置对图片显示效果的影响。 NPOI插图功能对于自动化处理Word文档,尤其是生成报告、模板等场景非常有用。通过掌握inline和anchor两种方法,你可以更加自如地操控docx文档中的图片,提升工作效率。记住,实践中不断尝试和优化,才能更好地掌握这项技能。
2024-10-28 06:13:17 1.5MB NPOI DOCX
1
兼容word2007的NPOI插图到DOCX页眉例子,vs2010,例中提供了在页眉用inline插入图片的实现代码,NPOI是tonyqus提供的2.1.3.0源码经过新修改编译。
2022-06-12 16:47:04 1.33MB NPOI DOCX 插图 页眉
1
NPOI2.1.1创建docx超链接及书签,vs2010,例子提供了创建超链接及书签的代码。
2022-02-08 10:29:28 2.44MB NPOI DOCX 书签
1
兼容word2007的NPOI创建DOCX页码例子,vs2010,例中提供了在页脚插入页码的实现代码,NPOI是tonyqus提供的2.1.1.0源码经过新修改编译。
2021-10-13 19:51:44 2.36MB NPOI DOCX 页码
1
兼容word2007的NPOI创建DOCX例子,vs2010,例中提供了创建表、插图和图表实现的代码,NPOI是tonyqus提供的2.1.1.0源码经过新修改编译。
2019-12-21 19:47:53 1.46MB NPOI DOCX 插图
1
一个兼容word2007的NPOI插入图表例子,vs2010,例中提供了饼图和柱状图实现的代码,NPOI是tonyqus提供的2.1.1.0源码经过修改编译。
2019-12-21 19:47:53 1.19MB NPOI DOCX 图表
1