如何在带有POI的DOCX中使用预定义格式?


问题内容

我正在使用POI创建docx生成器,并且想使用预定义的格式。

Word包括标题,标题1..10等几种格式。在用Word创建的每个DOCX中都预定义了这些格式。

我想在我的docx生成器中使用它们。我尝试了以下操作,但未应用格式:

paragraph = document.createParagraph();
lastParagraph.setStyle("Heading1");

我还尝试将“标题1”,“ heading1”和“ Heading1”设置为样式,但它们均无效。
API文档不显示任何信息。

我分析了用Word 2007创建的docx文件,发现“ Heading1”是正确的。不幸的是,样式未在docx中定义。我必须手动创建此样式吗?

谁能指出我正确的解决方案?


问题答案:

非常简单:使用“模板” docx文件。

  1. 使用Word 2007创建一个空的docx文件。
  2. 将此文件用作您的模板 XWPFDocument
  3. 用样式添加段落。

这是代码:

XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx");
paragraph = document.createParagraph();
paragraph.setStyle("Heading1");

模板包含所有样式,因此可以通过引用它们setStyle("Heading1");