Office Open XML系列-Office Open XML初体验
工欲善其事必先利其器,我们首先准备下开发Office Open XML的环境吧
Microsoft Office 2007
VS2005
Package Explorer
准备好了吗?我们先来感受下Office 2007带给我们的惊喜吧。
新建一个Word文档hello.docx,我们试着修改文档名称为hello.docx.zip(即增加了后缀.zip),然后使用解压缩软件(winrar)呵呵,此文档的组成就原形毕露了。在word文件夹下的document.xml文件中,我们可以看到<w:t>Hello world!</w:t>,这正是我们在hello.docx中输入的文字。这时你会说这么多文文件构成了一份docx文件,它的体积不是很大?比Word 2003好吗?别着急,我们查看hello.docx文件的体积发现很小,奇怪了?原来Office2007使用XML和ZIP技术的结合,所以这点就不必担心了。显然Office2007采用Open XML的结构,将给Office文档带来质的变化,同时程序员也将拥有一份新的天地。
在看看Office 2007的安全性吧,如果还为VBA带来的不安定因素而烦恼的话。我们再看hello.docx文件并没有发现宏编程的地方。Fllow me,把hello.docx文件另存为“启用宏的docm”格式的文件,然后启用“开发工具”,现在就可以VBA之旅了。Microsoft的想法可真善解人意哈。
实践了这么些,我们现在回想下实际应用当中的问题。
问题1:使用公司统一Logo的模板制作的Word文档,当logo发生变化的时候面对上千份文档如何实现呢?
问题2:上级领导对员工的评价,不希望其它人看到,现在面对上千份文档希望删除掉所有文档中的评价信息,如何实现呢?
这些问题在Office 2007中都会得到解决,XML和ZIP技术特点以及行业优势将体现的淋漓尽致。
Microsoft Open XML发展历史
Ecma Office Open XML 规范
Office Open XML文档格式
l 技术核心:使用XML参考架构和ZIP容器
l 存储方式:文档各个部分分别存储,提高安全性
l 使用开发打包约定,同时也被XPS格式所使用
l 格式主要针对Office Word 2007、Office Excel 2007和Office PowerPoint 2007的完全可编辑文件格式
Office Open XML 格式的术语表
l API 访问软件功能的函数或方法的集合
l 转换器用于在以前的Office 版本中打开使用
l Office XML 格式创建的文件的免费工具
l 包包含组成文档的组件(部件)的ZIP 容
l 器,
l 向前兼容性
l 部件
l 关系
l 安全性
文档格式和应用程序
l 格式描述信息
l 结构化的内容格式使业务处理更加方便
l 可以通过软件去使用和操纵这些内容
l 通过接口使软件可以很方便的访问信息.
l 提供以下功能,生成, 组织,
l 开发, 定位, 测试,协作, 验证, 计算, 文档保护,
l 打印信息
l 格式可以影响软件设计, 反之亦然
XML参考架构
XML 参考架构
l 格式固定
l (粗体, 斜体, 表格, 段落, 格式,…)
l 文档格式
自定义架构
l 基本数据
l (e.g.: 价格, 发票信息)
l 商业信息
Office Open XML 文件格式的目标
l 通用性好,不局限于某一个平台或者开发商
l 新的编程接口使操作更加简单
l 降低操作难度
-通过编程进行交互
-最新技术的处理方式
- 能够提供综合的解决方案
-可以在多个应用软件之间共享数据
- 应用范围广泛
开发人员眼中的Open XML 文件
l ZIP文件
l 文档部分
– XML 部分
– 二进制部分
关系
– 部分之间的关系
l 折叠结构仅仅是为了方便
理解OPC packages是Parts 和relation的集合。
Demo 源码下载:Hello World!