【问题标题】:Open Microsoft Word docx file with Java使用 Java 打开 Microsoft Word docx 文件
【发布时间】:2012-04-25 17:38:44
【问题描述】:

如何在 Java 中打开 Microsoft Word docx 文件?另外,如果有密码怎么打开呢?

例如,

File f = new File("hello.docx");

请尽量避免回答诸如“你不应该这样做”之类的内容。我有一个很好的理由,所以当你回答时请坚持这个问题。非常感谢!

【问题讨论】:

标签: java file io docx


【解决方案1】:

有一个Apache POI 项目用于处理 MS Office 文件。 DOCX 文件只是一个 zip 文件,其中包含一系列 XML 文件,因此您可以解压缩文件并使用 XML。 XML 规范(Open XML)是已知的。

【讨论】:

  • 遗憾的是,Apache POI 不能很容易地处理表格、标题或图像。 Docx4J 更健壮一些。
【解决方案2】:

我没有亲自使用过,但看起来 Apache POI 可以为你工作:http://poi.apache.org/

【讨论】:

  • 我也会推荐 POI。如果你想读/写文件,那么它是最好的 Apache License 2.0 库(或者我遇到的)
  • 你能展示使用密码读取word doc的示例代码吗?
  • @CodeGuy 我不会为你做这项研究。我只是用谷歌搜索了你的问题并找到了这个项目。如上所述,我没有亲自使用过。
【解决方案3】:

您也可以使用 docx4j。 http://www.docx4java.org/trac/docx4j

【讨论】:

【解决方案4】:

我使用过 docx4j 和 Apache 的 POI 库,如果您使用 .docx,我会推荐 .docx4j。自动化了很多创建 .docx 的过程。
这里有一个很好的例子:http://java.dzone.com/articles/create-complex-word-docx 关于如何使用 docx4j 包创建 .docx。

【讨论】:

    【解决方案5】:

    如果 docx 受密码保护,则它不会是 zip 文件。这将是一个复合文件。见Overview of Protected Office Open XML Documents

    要在 Java 中读取复合文件,请使用 POIFS。 POIFS 是 POI 的一部分(docx4j 也使用它,所以如果您下载 docx4j 发行版,您将能够使用 POIFS API)

    解密加密包后,您可以使用 docx4j 或 POI 读取它。

    编辑:好的,现在 docx4j 可以自动handle password-protected docx

    【讨论】:

      【解决方案6】:

      您是否尝试使用Open Office api 打开它?它可以处理多种文档类型。

      我将它与 MS Excel 文件 .xls(旧版本)格式一起使用。

      希望对你有帮助。

      【讨论】:

      • 你能展示你如何用密码打开MS的示例代码吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      相关资源
      最近更新 更多