文章:用 Java 操作 Office 2007

  • Ted Neward
  • 张立

2007 年 9 月 20 日

话题:Java.NETDevOps语言 & 开发架构

本文提到的主要问题是如何使 Office 和 Java 共同工作,也就是说让 Java 应用程序来操作 Office 文档:比如创建文档,编辑文档,收集数据等等。Ted Neward 这个互操作方面的专家给出了自己的理解。

从以往看来,要在 Office 和 Java 之间进行互操作经常会出现一些问题,这是由于 Office 文档(主要是 Word,Excel 和 PowerPoint)是存储在一个二进制格式文件中,在 COM 中被称为结构化存储格式, 是一个通过 COM 接口的层次化二进制格式。对 COM 开发者(或者其他使用 COM 相关语言的开发者,如 Visual Basic, Delphi 和 C++/ATL)而言非常方便,但产生的文件对于那些不能“讲 COM”的语言是无法访问的。有许许多多的应用程序都是为了让 Java 语言可以访问这些文件的内容;比如大家都知道 Excel 可以读取逗号分隔符文件(CSV),因此,Java 应用程序相应将数据导出到 Excel 友好的格式时一般会选用 CSV 格式(或是其他丑陋的格式)。Word 则是可以读取富文本格式(RTF)文件,而 RTF 标准是公开和有详细文档的。Office 的后来者,Office 2003,引入了一个新的 XML 格式(WordML),Java 开发者可以用它来读写 Office 文档,但是这些格式并没有很好的文档,Java 开发者频繁的发现自己是通过试错法来进行 WordML 格式的学习等等。

总体上来说,如果温和一点说的话,Java/Office 的故事是一个非常讨厌的境况。对于 Java 的开发人员而言,他们要么一边嘴里说着 “Office 这种破东西怎么还会有人想去用它”一边用记忆里的伊索寓言来安慰自己,要么干脆告诉那些使用 Office 的客户由于 Microsoft 和 Sun 两家公司之间的诉讼,Java 不能操作 Office。

那么在 Office 2007 里,这些情况有没有得到改善?

阅读全文:用 Java 操作 Office 2007
Java.NETDevOps语言 & 开发架构