使用Apache POI更新.docx文件的页眉

如何使用Apache POI 3.7 API更新.docx文件的页眉?

首先,在XWPFDocument上调用getHeaderFooterPolicy() ,它返回一个HeaderFooterPolicy 。 从那里,您可以识别页面的相应标题(例如,默认,第一页等)

一旦有了想要更改的相应XWPFHeader ,就可以将其编辑为任何其他文档部分。 您可以获取表格,段落等,然后删除它们,添加新的,更改它们的文本等。这与编辑主文档的过程完全相同。

由于您的文档采用.docx格式,因此您需要使用POI项目的XWPF组件API。 您可能会发现org.apache.poi.xwpf.usermodel.XWPFHeader类很有用( Javadoc ),但我自己从未使用过它。

我无法找到使用XWPF执行此操作的良好参考,但以下说明描述了使用HWPF访问标头,HWPF是旧Word文档的分析界面(AKA .doc docs):

要获取Word文档的页眉和页脚,请首先创建一个org.apache.poi.hwpf.HWPFDocument 。 接下来,您需要创建一个org.apache.poi.hwpf.usermodel.HeaderStores ,并将其传递给您的HWPFDocument 。 最后, HeaderStores允许您访问页眉和页脚,包括文档中定义的第一页/偶数页/页首页。 此外, HeaderStores提供了一种删除文本中任何宏的方法,这很有用,因为许多页眉和页脚最终会在其中包含宏。

这些指令来自的页面暗示在HWPF中头部支持从来没有那么好,更不用说XWPF了。 对于更多的坏消息, 这个其他Apache页面让人觉得XWPF开发几乎停滞不前。 您想要做的事情可能是有计划的,但尚未得到支持。

使用Apache POI查看使用Java编写Microsoft Word文档

我之前从未使用过Word文件,但是使用POI库来完成excel的东西,它们很容易遵循(它们为excel的行,列,表等建模)所以我假设它们对于Word也同样容易文件。

并快速阅读他们的指南Apache POI – HWPF – 用于处理Microsoft Word文件的Java API