守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 4408|回复: 2

[项目讨论] 文件格式之Office 2007

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51850
    钢镚
    1422

    开源英雄守望者

    发表于 2014-12-31 22:49:46 | 显示全部楼层 |阅读模式
    标 题: 【原创】文件格式之Office 2007
    作 者: youstar
    时 间: 2009-12-13,01:40:58
    链 接: http://bbs.pediy.com/showthread.php?t=103011

    标 题: 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文件,它定义了包中的根关系。它是在解析整个包时首先要浏览的第一个文件。
    源码如下:
    代码:
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    3. <Relationship Id="rId3"
    4. Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
    复制代码
    其中有三个关系属性:Id为任意字符串,在.rels文件中必须是唯一的;Type表示关系的类型;Target指定包含关系的目标的文件夹和文件。
      docProps文件夹:包含两个文件(app.xml和core.xml)。
    app.xml:
    代码:
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Template>Normal_Wordconv.dotm</Template><TotalTime>1</TotalTime><Pages>1</Pages><Words>10</Words><Characters>57</Characters><Application>Microsoft Office Outlook</Application><DocSecurity>0</DocSecurity><Lines>0</Lines><Paragraphs>0</Paragraphs><ScaleCrop>false</ScaleCrop><Company>youstars</Company><LinksUpToDate>false</LinksUpToDate><CharactersWithSpaces>0</CharactersWithSpaces><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>12.0000</AppVersion></Properties>
    复制代码
    core.xml:
    代码:
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/"
    3. xmlns:dcterms="http://purl.org/dc/terms/"xmlns:dcmitype="http://purl.org/dc/dcmitype/"
    4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:title></dc:title><dc:subject></dc:subject><dc:creator>youstar</dc:creator><cp:keywords></cp:keywords><dc:description></dc:description><cp:lastModifiedBy>youstar</cp:lastModifiedBy><cp:revision>3</cp:revision><dcterms:created
    5. xsi:type="dcterms:W3CDTF">2009-12-12T15:58:00Z</dcterms:created><dcterms:modified
    6. xsi:type="dcterms:W3CDTF">2009-12-12T15:59:00Z</dcterms:modified></cp:coreProperties>
    复制代码
    包含各种XML文件,描述文件属性和应用程序设置。这些文件包含着文件的属性信息,例如创建者的名字、修改的和创建的日期。
      word文件夹:




    包含文件的核心部分。
    1.  _rels:各部分关系文件
    2.  media:文档中的图片文件
    3.  theme:主题的XML文件
    4.  document.xml:文档里面的一些结构
    5.  fontTable.xml:文档字体设置文件
    6.  settings.xml:文件的一些配置吧
    7.  styles.xml:有关文档中样式的信息,例如字体大小,表格样式,和列表样式等
    8.  webSettings.xml:没看清楚….
      [Content_Types].xml文件:包含在我中的其它部件提供了一个内容类型的列表。内容类型可以定义为部件的类型,它们可以存储在一个包中。
    说明:自己只是简单的看了看,做了下笔记,作为分享。

    更多资料见:
    1、官网讲解http://www.microsoft.com/china/msdn/....mspx?mfr=true
    2、office格式全套资料(OfficeFileFormatsProtocols.zip)
    下载地址:http://download.microsoft.com/downlo...sProtocols.zip
    3.了解 Open XML 文件格式
    4.Office (2007) Open XML 文件格式简介


    本文word格式下载:Office Open XML学习.doc.
    本文所用的测试文件下载:Project.rar.







    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    14

    积分

    新兵

    Rank: 1

    威望
    0
    贡献
    0
    金币
    4
    钢镚
    0
    发表于 2015-5-30 15:08:36 | 显示全部楼层
    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    14

    积分

    新兵

    Rank: 1

    威望
    0
    贡献
    0
    金币
    4
    钢镚
    0
    发表于 2015-5-30 15:14:14 | 显示全部楼层
    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2020-7-9 05:25 , Processed in 0.061901 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表