如何用Java编辑docx字段内容?

时间:2012-07-26 17:16:32

标签: java ms-word docx

我有一个.docx模板,其中定义了字段。我需要在Web服务中获取用户输入的数据,并使用Java将其插入到这些字段中。

我和我的团队在一天的大部分时间里一直在研究这个问题,但我们一直无法找到解决方案。

有没有办法相对容易地做到这一点?

感谢。

编辑:

  • 按下alt + F9后,所有字段都显示如下:{ FORMTEXT }

  • POI似乎没有足够的支持来做到这一点。

  • 我无法在Windows XP中成功设置Open Office SDK,因为我无法完成所有依赖项。

  • docx4j可能有效,但其中的MailMerger目前没有填写给定数据的字段。

  • 如果我解压缩docx并打开word / document.xml文件,这就是围绕一个字段的XML:http://pastebin.com/uXBtz7X5(搜索FieldName和FieldValue以查看这些字段的定义)

4 个答案:

答案 0 :(得分:3)

查看Docx4j,您可以使用它来更新docx文档中的字段,还有示例

fieldupdater example

答案 1 :(得分:2)

披露:我的公司赞助了docx4j

看看MailMerger;看到底部的主要方法。

对于其他类型的字段,您可以尝试更通用的字段支持。

答案 2 :(得分:0)

docx格式是一个zip文件,里面有XML和其他文件。您可以使用标准XML工具编辑XML文件。

答案 3 :(得分:0)

Docmosis和JODReports可能会对您有所帮助 - 它们是用于生成多种格式的文档/填充模板的Java库。 Docmosis可以与DocX一起使用,因为它们基于相同的技术,JODReports也可能。我不知道特定的{FORMTEXT}字段是否可行,但Docmosis可以使用纯文本文件或Word的合并字段,当您按ALT-F9时,它们看起来像{MERGEFIELD}。