java - Java 中的 Word 文档创建 API

标签 java ms-word apache-poi

我想使用模板创建一个word文档,替换一些变量(字段)并将其另存为一个新的word文档。

我在考虑使用 Apache POI,http://poi.apache.org/这是最好的吗? 你能分享一下你对它的印象吗?

最佳答案

我以前使用过 POI,它肯定能够生成 Word 文档。但细节决定成败。

Word 有数以千计的功能:您可以将从 #13 开始的带有负缩进的编号列表放入一个表的两个连接单元格中,该表包含在另一个表中,该表本身是项目符号列表的一部分……您明白了。当 POI 文档说它们是一项正在进行的工作时,这反射(reflect)了努力 catch (对我们来说,未记录的)Word 规范可能是一种永恒的状态。

POI 很好地支持具有合理“正常”使用功能集的文档,其接口(interface)和方法合理且一致,但有时需要一些工作。但正如 Pascal 所说,RTF 也支持具有不太过分功能的文档。 我几乎没有“做”RTF 的经验,但它可能比使用 POI 简单一些。

如果您工作的环境或客户坚持要求您生成的文档是 .DOC 而不是 .RTF,那么 POI 几乎是您唯一的选择选择,除非您可以引入一个步骤,在该步骤中使用一些 Office 自动化将 RTF 转换为 DOC。

更新:与此同时,我还有一些想法。

使用 POI 或创建 RTF 文档几乎可以在任何平台上进行。例如,在我的工作中,所有执行此类处理的服务器都恰好运行 Linux。

但是,如果您的程序可能会在 Windows 下运行,则还有另一种选择:Jacob http://www.land-of-kain.de/docs/jacob/

Jacob 是 Java 的 COM 接口(interface);它本质上允许您“远程控制”Windows 程序,例如 Word 和 Excel。我在上面链接的文档不是 Jacob 自己的站点,而是包含使用 Jacob 的“千篇一律”食谱的单个页面。该项目本身在 SourceForge 上:http://sourceforge.net/projects/jacob-project/但是人们声称文档有点缺乏,这是正确的。

与所有其他解决方案相比,Jacob 的优势在于您处理的是“真正的”Word,因此您可以使用 Word 的所有功能。如果您的文档中有无法通过 POI 或 RTF 格式处理的详细信息,这将是一种替代方法。

关于java - Java 中的 Word 文档创建 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1991030/

相关文章:

Java 24 位数字签名

java - hibernate 和 Java.util.set 问题

c# - 如何在 visual studio 中添加程序集 DocumentFormat.OpenXml.Wordprocessin

java - 使用apache poi在ms word文档中创建 "Multiple Tables"

c# - 如何访问 VSTO Words 加载项中的 KeyUp、KeyDown 事件?

java - 在 Java 10 中使用 Apache POI 出错

java - Groovy/POI 在不同系统上返回不同迭代器

java - Hibernate @Filter 枚举列类型

java - 通过重定向 URL 的 ElasticSearch REST HTTP 请求

java - Excel 中的空单元格返回 Null(Java、POI)