Java操作office文件的选择

笔者在这里所述的信息均是从网上搜索聚合而来,有些是亲身做过验证的,有些不符合笔者需求,所以也没有浪费太多时间去做无用功,有需要的朋友可以自行深入探索。

office办公软件的强大及广泛应用,笔者在这里就不再复述了。那么操作office办公文件的需求自然也不会少,.net仗着MS的关系,一套标准API想怎么来就怎么来。可是换了java,如何来应对呢?

  • Apache POI

特点:开源免费,Apache产出物,文档全面。功能丰富,分别有针对Word、Excel和PPT的操作API,支持03和07不同格式的文件。

局限性:03和07不同格式的office文件,有着两套不同的API,虽然用法类似,但毕竟类名、接口名都有所变动,使用着实有些棘手。

  • Jacob

特点:开源免费,通过JNI功能访问Windows平台下的com组件或者win32系统库来实现操控office文件的目的。API的使用类似VBA编程的风格,所以对于熟悉VBA的朋友是个福音(至少我看着没有POI的API舒服)。

局限性:安装Jacob时,需要一个dll文件,所以使用Jacob脱离不了Windows平台,Linux不适用。(不巧笔者的环境是Linux,所以没对Jacob研究下去)

  • Aspose

特点:功能强大,支持多种格式的文件和功能,支持许多POI没能完成的功能(真的很强大!)。举例清晰,不论是03还是07格式的文件,API接口统一。更列出了与POI的对比,充分表现了自身的完美。

局限性:收费!收费!收费!即便每年的$你老板可以接受,但多少主观感觉上有些受制于人。

  • OpenOffice

特点:一套跨平台的办公室软件套件,能够在Windows、Linux、MaxOS和Solaris等操作系统上执行,功能堪比office办公套件,兼容各个主要的办公室软件套件。

局限性:需要安装OpenOffice的软件环境。重要的是,从上述的言词可以看出OpenOffice本身是一款软件,它的存在主要是为了替代MS的office,不是为了提供操控office文件的API。因为笔者没有选用OpenOffice方案,所以笔者推测由于OpenOffice为了兼容其他的办公软件套件,才会存在一部分API可以操作office文件。但这不是OpenOffice存在的主要价值。

从调研的过程中发现,使用POI并进行总结的用户居多。看过这篇文章的朋友可以根据自己的实际情况做出选择。

你可能感兴趣的:(Java操作office文件的选择)