是否有可以创建丰富Word文档的Java API?

bil*_*dev 110 java ms-word doc docx

我有一个新的应用程序,我将在哪里生成一个包含表格,图形,目录和文本的Word文档.什么是一个很好的API用于此?你有多确定它支持图形,ToC和表格?使用它们有什么隐藏的问题?

一些澄清:

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

如果我可以从模板文档开始,只需用表格,图形等填充一些空格,那就太好了.

编辑:下面有几个很好的答案,每个都有自己的错误,就我目前的情况而言.很难从他们那里选择"最终答案".我想我会把它打开,并希望能够创造出更好的解决方案.

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

小智 56

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等).

这是一些有用的网站:


Jor*_*ira 30

我认为Apache POI可以完成这项工作.可能的问题取决于您的目标用途可能是由于HWPF仍处于早期开发阶段.

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


Leo*_*rdo 9

您可以使用此功能:http: //code.google.com/p/java2word

我实现了这个名为Java2Word的API.使用几行代码,您可以生成一个Microsoft Word文档.

例如.:

IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph...")
Run Code Online (Sandbox Code Playgroud)

有一些例子如何使用.基本上你需要一个jar文件.如果您需要任何有关如何设置的更多信息,请与我们联系.

*我这样写是因为我们在一个项目中有一个真正的需要.更多在我的博客中:

http://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html*

为莱昂纳多喝彩

编辑:链接中的项目已移至https://github.com/leonardoanalista/java2word

  • 我无法使用OpenOffice打开java2word生成的文件?适用于Office 2010 (2认同)

rom*_*eok 5

试试 Aspose.Words for Java,它可以在任何安装了 Java 的操作系统上运行。

如果您需要 MS Word 输出格式,它会将文档输出为 DOC、DOCX 或 RTF。所有这些都得到同样好的支持。

使用此 API,您可以从头开始创建文档,实际上是从节点创建文档并设置其格式属性。您还可以使用提供更高级别方法的 DocumentBuilder,例如创建表格行、插入字段等。或者您可以在现有的预创建文档之间复制/加入/移动部分,假设您要组装合同,只需抓取并复制来自多个文档的片段和 Aspose.Words 将在生成的文档中正确合并样式、列表格式等。

您将能够使用 Aspose.Words 插入目录字段,但从今天起,当在 Microsoft Word 中打开文档时,目录字段将需要字段更新。但是,我们将在 2010 年初发布对 TOC 字段的全面支持。例如,它将像 MS Word 那样构建完整的 TOC。

我在 Aspose.Words 团队。