Java中的Word文档创建API


问题内容

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

我当时在考虑使用Apache
POI,http://poi.apache.org/是否最适合此目的?您可以分享您的印象吗?


问题答案:

我以前使用过POI,并且肯定可以生成Word文档。但是魔鬼在细节上。

Word具有成千上万个功能:您可以将编号为#13的带有负缩进的列表放到另一个表(该表本身是项目符号列表的一部分)中所包含的表的两个连接单元中……您就明白了。当POI文档说它们正在进行中时,这反映出试图追赶Word(对于我们而言,未记录)规范的永恒状态。

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

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

更新: 在此期间,我还有更多想法。

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

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

Jacob是COMJava 的接口。它实际上使您可以“远程控制”
Windows程序,例如Word和Excel。我上面链接的文档不是到Jacob自己的网站,而是到包含使用Jacob的“曲奇刀”配方的一页。该项目本身位于SourceForge上:http : //sourceforge.net/projects/jacob-
project/但是人们声称,正确的是,该文档有些缺乏。

与您处理“真实” Word的所有其他解决方案相比,Jacob具有优势,因此您可以使用Word的 所有
功能。如果您的文档中有些细节方面无法通过POI或RTF格式处理,则可以采用这种方法。