没有合适的资源?快使用搜索试试~ 我知道了~
首页用Java操作Office 2007
资源详情
资源评论
资源推荐

用 Java 操作 Oce 2007
在上一篇“Oce 富客户端应用”中,我们提到了将 Oce 2007 平台作为一个
构建富客户端应用程序的基本平台,并通过不同的手段使用 Java 来进行互操作。
但是,有一个 Oce/Java 互操作的方面没有考虑到,那就是使 Oce 和
Java 共同工作,也就是说让 Java 应用程序来操作 Oce 文档:比如创建文档,
编辑文档,收集数据等等。
从以往看来,这其中经常会出现一些问题,这是由于 Oce 文档(主要是
Word,Excel 和 PowerPoint)是存储在一个二进制格式文件中,在 COM 中
被称为结构化存储格式, 是一个通过 COM 接口的层次化二进制格式。 对
COM 开发者(或者其他使用 COM 相关语言的开发者,如 Visual Basic,
Delphi 和 C++/ATL)而言非常方便,但产生的文件对于那些不能“讲 COM”
的语言是无法访问的。有许许多多的应用程序都是为了让 Java 语言可以访问这
些文件的内容;比如大家都知道 Excel 可以读取逗号分隔符文件(CSV),因
此,Java 应用程序相应将数据导出到 Excel 友好的格式时一般会选用 CSV 格
式(或是其他丑陋的格式)。Word 则是可以读取富文本格式(RTF)文件,
而 RTF 标准是公开和有详细文档的。Oce 的后来者,Oce 2003,引入了
一个新的 XML 格式(WordML),Java 开发者可以用它来读写 Oce 文档,
但是这些格式并没有很好的文档,Java 开发者频繁的发现自己是通过试错法来
进行 WordML 格式的学习。 各种各样的开源项目都参与进来想要解决这个问
题,比如 Apache 的 POI 框架,可以用来读写 Excel 文档,还有各种各样的
Java-COM 解决方案,这些解决方案一般倾向于使用和 Oce 自己使用的结构

化存储应用程序接口相同的应用程序接口进行 Excel 文档的读写,但很难满足
需要,直到现在,开发者不得不指出 Oce 文档格式的内部结构是一个非常复
杂的结构,另外一点毋庸置疑的是它是一个没有完整文档的结构。
总体上来说,如果温和一点说的话,Java/Oce 的故事是一个非常讨厌的境况。
对于 Java 的开发人员而言,他们要么一边嘴里说着“Oce 这种破东西怎么还
会有人想去用它”一边用记忆里的伊索寓言来安慰自己,要么干脆告诉那些使用
Oce 的客户由于 Microsoft 和 Sun 两家公司之间的诉讼,Java 不能操作
Oce。
对于 Oce 2007 来说,微软毫无疑问的迈出了解决这些问题的一大步。没有
比原始的 JDK 更复杂的东西---也就是说并不要求使用一些第三方的库---Java 应
用程序现在可以读写任何 Oce 2007 的文档,这是由于 Oce 2007 文档现
在使用的是 XML 文档的 ZIP 格式文件。 这种格式被称作“OpenMXL”规范并且
已经被提交到欧洲计算机制造商协会(ECMA),这个协会同样拥有 C#语言
和 CLI 运行时规范,所有的 OpenXML 规范现在都可以被任何人自由的从
ECMA
的网站下载。 除了这些,再安装好 Oce 2007(为了验证和作一些测
试)和一个标准的 Java6 JDK 安装,Java 现在可以打开任何的 Oce 2007
文档,找出来文档中间的内容,操作它们,并且再次保存这些数据。
与上篇文章不同,在这篇文章中,除了创建一个简单的应用程序之外,代码将
会使用一种首先由 Stuart Halloway 提出的、被称作探索测试(exploration
testing)的技术。在一个探索测试中,开发者编写单元测试用来探索应用程序

接口,使用单元测试世界中的断言验证结果的正确性。探索测试带来的好处是
当一个新版本的应用程序接口可用时---在这个例子中,可能是一个新版本的
Oce---运行这些测试可以用来确认新版本的采用不会影响到原本对应用程序
接口的使用。
对于初学者来说,让我们首先快速的了解一下 Oce 2007 文档。首先看一个
仅仅包含文本的 Word 2007 文档,就像下面一样:
当保存的时候,使用 Word 2007 将它保存为“Hello.docx”,除非你使用了向
后兼容格式,比如说 Oce 2003 的 WordML 格式,或者是更老的 Word 97
二进制结构化存储格式。“.docx”文件是 OpenXML 格式的,微软的文档中声
称该格式是 XML 文档的 ZIP 压缩格式文件,这些文件中包含了文档中的数据和
格式,存储的方式与之前的 Oce 版本中的二进制结构化存储应用程序接口存
储数据的方式有些类似。如果这是真的,那么使用 Java 中提供的用来处理 ZIP
和 TAR 格式的“jar”实用工具应该可以展示这些内容,而事实上,它的确可以:
剩余11页未读,继续阅读

















没准
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论1