Java处理Office平台总结

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

大体描述:

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

(2013-03  http://www.iteye.com/problems/85607)

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

概述与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)

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-03http://blog.csdn.net/xiaogugood/article/details/8662775)

这篇文章比较好,讲述了一些比较底层原理方面的,比如讲到了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)

Eclipse如何加载POI》(2013-03  http://blog.csdn.net/xiaogugood/article/details/8662631)

其他解决方案:

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

利用C++/C#做Office平台的处理,然后将处理结果通过本地进程通信送给Java程序。毕竟Office是微软的产品,这样通过C++/C#调用微软提供的操作Office平台的接口,应该最为高效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值