首页
社区
课程
招聘
[原创]文件格式之Office 2007
发表于: 2009-12-13 01:40 16385

[原创]文件格式之Office 2007

2009-12-13 01:40
16385

标 题: Office Open XML 文件格式的一点认识
作 者: youstar
时 间: 2009-12-13,1:30
   原来一直没怎么研究过这个,这两天看了下Office Open XML 文件格式,自己做了点笔记,分享给大家,水平确实很低,高手飘过,欢迎大家讨论Office Open XML 的安全性问题。

一、XML的引入
office2007以前的存储格式为二进制文件(.doc,.dot,.xls,以及.ppt文件),在过去几年中一直肩负着存储和转换数据的重任,而现在它们无法满足新的市场需求的挑战,其中包括轻松地在异构应用之间传递数据,以及允许用户从这些数据中搜集商业信息。而XML从20世纪90年代出现,企业计算客户开始逐渐认识到,在他们所依赖的计算机产品和应用中采用开放的格式和标准所带来的商业价值。IT专业人员将从通用的数据格式中受益匪浅,这种格式可能是XML,因为它拥有被应用程序、平台和Internet浏览器读取的能力。因此微软在office2007以后就转向了XML。2007 Microsoft Office system为Microsoft Office Excel 2007,Microsoft Office Word 2007,和Microsoft Office PowerPoint 2007采用了基于XML的文件格式,从而延续了这种转移。新的文件格式,称为Office Open XML格式,简称为OOXML。
    同时微软在2008年在反对的声音中通过了OOXML格式成为国际化标准,谷歌等包括很多国家和机构都对此不满。
二、Office Open XML的优点
        1.压缩文件
Office Open XML文件会自动压缩,某些情况下最多可缩小75%。Office Open XML使用zip压缩技术来存储文档,
2.改进了受损文件的恢复
使用Office Open XML格式保存的文档不是二进制格式,而是使用文本格式以一定的XML结构以模块形式进行组织,从而使文件中的不同数据组件彼此分隔。这样,即使文件中的某个组件(例如,图表或表格)受到损坏,文件本身还是可以打开。
3.易于检测到包含宏的文档
根据工作簿是否包含宏,在保存工作簿时文件的扩展名也有所不同。无宏的工作簿扩展名为".xlsx",包含宏的工作簿扩展名为".xlsm"。这样,通过工作簿名称即可知道文件是否包含宏代码。
4.更好的隐私保护和更强有力的个人信息控制
可以采用保密方式共享文档,因为使用文档检查器可以轻松地识别和删除个人身份信息和业务敏感信息,例如,作者姓名、批注、修订和文件路径。
5.更好的业务数据集成性和互操作性
将Office Open XML作为Office 2007发布版产品集的数据互操作性框架意味着:文档、工作表、演示文稿和表单都可以采用XML文件格式保存,任何人都可免费使用该文件格式并获得该文件格式的许可证,而不必支付版权费。
6.向后兼容性
Office Open XML是向后兼容的,它可以兼容早期的版本。
三、office2007 的格式
为了打开一个Word 2007 XML文件的步骤
1.        创建一个临时目录来存储文件和它的部件。
2.        创建一个Word 2007文档,包括文本,图片以及其它元素,保存为一个.docx文件。
3.        在文件名的末端添加一个.zip扩展名。
4.        双击文件,将会在ZIP应用程序当中打开该文件。可以查看组成文件的每个部件。
5.        将这些部件提取到刚才创建的临时目录当中。
2007版本的文件格式容器入下图,这个结构我们在下面就来研究下。

四、office 2007的一点研究
下面我们对office2007的结构进行分析。以test.doc为例,首先将后缀改为.zip然后解压

分析如下:
        _rels文件夹:里面有一个文件(_rels.xml),.rels文件,它定义了包中的根关系。它是在解析整个包时首先要浏览的第一个文件。
源码如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2"
Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 8
支持
分享
最新回复 (6)
雪    币: 558
活跃值: (46)
能力值: ( LV2,RANK:16 )
在线值:
发帖
回帖
粉丝
2
谢谢楼主分享
学习
2009-12-13 03:39
0
雪    币: 267
活跃值: (24)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
学习得不够深入,只是看了个大概
2009-12-14 09:33
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
很感谢分享,谢谢
2010-2-5 12:51
0
雪    币: 224
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
me too
2011-4-13 11:55
0
雪    币: 1099
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dqs
6
科普了,MSDN的文档还是中文的。
2011-8-26 17:44
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
通俗易懂啦
楼主我**
2011-8-30 10:42
0
游客
登录 | 注册 方可回帖
返回
//