用非微软体系操控Office文档


如果使用微软体系进行网站开发,那么自然可以使用vb或者别的语言直接调用Office提供的com组件api来做组件,完成对文档的操控。这样虽然有时候不太稳定,特别是多个进程同时操作Office文档时,但至少算是一个比较容易的解决方案。

如果在非微软体系下,比如你的开发是基于Java系列的,那么操控Office的com组件就显得不是那样轻而易举了。有人传说可以使用Java操控com的api来完成这件事情,不过这样仍然存在该com组件消耗的系统资源难以控制、以及不够稳定这样的问题。

现在的一个新的办法是用Java操控ole2界面,也即apache项目的jakarta部分的叫做poi的一个子项。该子项已经完成了对excel文件的处理,而doc文件的处理正在开发中。或许这样可以避免老式操控Office文档时遇到的问题。至少,你使用该子项的解决方案可以不在服务器上安装Office程序就能够操控文档了。

该项目的官方地址为:http://jakarta.apache.org/poi/index.html

另提供一个简单的中文文档的地址以供参考:http://www.ccw.com.cn/htm/center/prog/02_10_22_2.asp

当然,也有传统的方法,就是利用JNI来连接COM/OLE组件,进行Java编程。已经有一些人封装了这个界面,允许开发者用近似纯Java的界面来连接COM组件。其中的一个实现在http://danadler.com/jacob/ 好像历史已经不短了。

另外在http://simtel.net/product.php?id=60701&sekid=0&SiteID=simtel.net 有一个叫NewJawin 1.1.36的解决方案。

总体来讲,poi似乎是Java操控Office文档的最佳选择,因为其跨平台,而且不需要你安装Office程序,但是poi的Word部分还不完善,因此我们还是有些时候不得不自己动手搞定,这时候,不妨试试Jacob吧。


以下是其他语言在没有Office程序的情况下操作Office文档的一些解决方案:

http://www.aspose.com/ 基于ASP.NET的解决方案,功能强大,支持的文档格式全,但是价格也贵。


http://www.andykhan.com/jexcelapi/ 一个韩国人做的,用Java操作Excel文档的程序,据说对中文支持很好。

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki