您的位置:首页 > 编程语言 > Java开发

Java处理Office平台总结

2013-03-12 12:26 211 查看
关于Java处理Office平台的研究就这样了吧,因为我发现要想完全掌握它不是短时间内能完成的。其实,这都完全可以立作一个项目进行研究了:研究一下微软的Office平台的底层数据格式原理;研究一下市面上现在提供哪些处理Office平台的Java类库工具;然后对这些工具进行比较,找出各自的优缺点;最后,可以综合以上的知识,开发一个自己的处理Office平台的Java类库工具。

大体描述:

l 概述:“java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。”。

(2013-03 http://www.iteye.com/problems/85607)
l Itext:“iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。”(2013-03
http://baike.baidu.com/view/2405889.htm)

l 概述与Java2word:“其实对于传统word文档的操作一般都会使用asp.net等语言去完成,java与com组件的通信还是其一大软肋。当前的com桥有poi、jcom、jacob等。其中poi简洁易用但功能较弱,jacob功能强大但上手较慢,需视需求而定。但这个问题在以openxml为基础的2007文档中是不存在的。2007文档实际上是一组xml的压缩包,其内部结构可以通过将.docx的文档改名为.rar(.zip)后打开查看便一目了然。这时我们只需要找到存储数据的xml,按照其格式来读取即可。”

“java2word是com桥jacob包的封装,它专门针对word文档的操作做了封装,方便使用。”(2013-03 http://blog.csdn.net/xiaogugood/article/details/8662928)
l Jacob:“它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库。它可运行在x86和支持32位和64位Java虚拟机 X64的环境。”(2013-03 http://baike.baidu.com/view/783738.htm#2)
l Java2word:“java2word,咱们国人开发的一个包,比网上介绍的poi,jacob等解决方按容易上手多了!虽然功能不是很多,但应该满足一般的需求。遗憾的是不支持07格式,如果你需要读写07格式,可以用一下openxml4j这个包。”

“java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。”

(2013-03http://blog.csdn.net/smartcat86/article/details/1847551)

l 《InfoQ:
用Java操作Office 2007》

(2013-03/article/2383640.html)

这篇文章比较好,讲述了一些比较底层原理方面的,比如讲到了Word2007的文件数据格式标准等等。可以看一下,对理解Java处理Office平台很多帮助。

l 其他参考文章:

利用poi操作word文档(针对docx格式)》(2013-03
http://blog.csdn.net/njchenyi/article/details/6901605)

《java简单解析docx、pptx、xlsx文档》(2013-03 http://fonter.iteye.com/blog/420319)

href="/article/2383639.html" target=_blank>Eclipse如何加载POI包》(2013-03 /article/2383639.html)

其他解决方案:
a) “采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。 ”(2013-03
http://www.iteye.com/problems/85607)

利用C++/C#做Office平台的处理,然后将处理结果通过本地进程通信送给Java程序。毕竟Office是微软的产品,这样通过C++/C#调用微软提供的操作Office平台的接口,应该最为高效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: