有没有一个Java API可以创建丰富的Word文档?[已关闭]

2022-08-31 09:30:19

我有一个新的应用程序,我将要处理,我必须在其中生成一个包含表格,图形,目录和文本的Word文档。什么是一个好的API用于此目的?您有多确定它支持图形,ToC和表格?使用它们有哪些隐藏的陷阱?

一些澄清:

  • 我无法输出PDF,他们想要一个Word文档。
  • 他们使用的是MS Word 2003(或2007),而不是OpenOffice。
  • 应用程序正在 *nix 应用程序服务器上运行

如果我能从模板文档开始,然后用表格,图形等填充一些空格,那就太好了。

编辑:下面有几个好的答案,就我目前的情况而言,每个答案都有自己的缺点。很难从他们那里挑选“最终答案”。我想我会让它保持开放,并希望创造更好的解决方案。

编辑:OpenOffice UNO项目似乎最接近我的要求。虽然POI肯定更主流,但对于我想要的来说,它太不成熟了。


答案 1

2007年,我的项目成功地使用OpenOffice.org的通用网络对象(UNO)接口,以编程方式从Java Web应用程序(Struts/JSP框架)生成MS-Word兼容文档(*.doc)以及相应的PDF文档。

OpenOffice UNO还允许您构建与MS-Office兼容的图表,电子表格,演示文稿等。我们能够动态构建复杂的Word文档,包括图表和表格。

我们通过使用带有书签插入的MS-Word文档模板简化了该过程,软件在其中插入了内容,但是,您可以完全从头开始构建文档。目标是让软件生成报告文档,这些文档可以由最终用户共享和进一步调整,然后再将其转换为PDF以进行最终交付和存档。

如果您希望用户使用 OpenOffice 而不是 MS-Office,则可以选择以 OpenOffice 格式生成文档。在我们的例子中,用户希望使用MS-Office工具。

UNO包含在OpenOffice套件中。我们只是将 Java 应用程序链接到套件中与 UNO 相关的库。OpenOffice 软件开发工具包 (SDK) 包含示例应用程序和 UNO 开发人员指南。

我还没有调查最新的OpenOffice UNO是否可以生成MS-Office 2007 Open XML文档格式。

关于OpenOffice UNO的重要事情是:

  1. 它是免费软件
  2. 它支持多种语言(例如Visual Basic,Java,C++等)。
  3. 它是独立于平台的(Windows,Linux,Unix等)。

以下是一些有用的网站:


答案 2

我认为Apache POI可以完成这项工作。根据目标用途的不同,可能出现的问题可能是由于 HWPF 仍处于早期开发阶段。

HWPF 是一组 API,用于使用(仅)Java 读取和写入 Microsoft Word 97(-XP) 文档。


推荐