后台:使用Microsoft Word时,可以定义随后被某些值替换的字段。
例如,添加以下内容然后激活字段功能将显示文档的标题(在属性中定义)。
问题:在使用Apache POI生成Word文档时是否有任何方法可以添加此类字段,以便最终用户看到正确的值(我还将提供字段的值)。我查看了Document对象上定义的方法,但没有看到任何有用的东西。只是在文档中写这个字符串是行不通的(有点明显......)
编辑:某些字段的XML如下所示(在本例中为文档的AUTHOR)
<w:p w:rsidRDefault="00AB5E40" w:rsidR="009B15AD">
<w:fldSimple w:instr=" AUTHOR \* MERGEFORMAT ">
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t>My Name</w:t>
</w:r>
</w:fldSimple>
</w:p>
答案 0 :(得分:2)
如果有人遇到类似的问题,请回答我自己的问题。正如Gagravarr指出的那样,没有高级API,但通过查看XML结构,我提出了这个:
private static void addField(XWPFParagraph paragraph, String fieldName) {
CTSimpleField ctSimpleField = paragraph.getCTP().addNewFldSimple();
ctSimpleField.setInstr(fieldName + " \\* MERGEFORMAT ");
ctSimpleField.addNewR().addNewT().setStringValue("<<fieldName>>");
}
使用您手边的某个段落调用此方法,字段名称将在文档中呈现此字段(使用正确的值或使用&lt;&lt;&lt; fieldName&gt;&gt;)