微软官方知识:了解 Office 二进制文件格式
2025-04-12 本站作者 【 字体:大 中 小 】
供稿人:Microsoft Corporation
目录
本文是介绍 Microsoft Office 产品使用的二进制文件格式的系列文章中的第一篇。这第一篇文章笼统地概述了如何使用 Microsoft Office 二进制文件格式,并解释不同格式共有的一些结构特征和主要概念。本系列中的其他文章提供有关各个文件格式的更多详细信息。应将这些文章与 MSDN 上提供的Microsoft Office File Format Documents (该链接可能指向英文页面)结合起来阅读。
本系列文章仅讨论四个核心 Microsoft Office 产品:Microsoft Word、Microsoft PowerPoint、Microsoft Excel 和 Microsoft Outlook。
什么是二进制文件格式?
二进制文件格式是主要包含二进制数据的任何文件格式。这包括编译的程序、图像、媒体和多数压缩文件,以及可能包含文本信息但存储为二进制数据的文件。Microsoft Office 产品使用的二进制文件格式就属于后一种情况。非二进制格式可能包括文本 (.txt), .html, .xml 及其派生形式、已解释脚本和源代码文件。
Microsoft Office 二进制文件格式的所有文件数据存在于一个或多个流中。每个流均包含用于存储元数据(如用户和系统信息、文件属性、格式信息、文本内容和媒体内容)的数据结构。这些数据结构表示为主机程序通过其用户界面解释和呈现的多组十六进制数字。
同时,流中的数据结构的组织方式各有不同。最常见的数据单元是记录。记录通常包含一些字段和标记形式的文件元数据。这包括一个或多个指示其他相关记录或其他数据的位置的偏移值。文本存储为表示 ANSI 或 Unicode 字符的数值。图像可存储为外部文件的指针,或存储为其自己的二进制文件格式的嵌入图像,如文件中的 .gif, .jpeg 或 .png。较活跃的内容(如 PowerPoint 幻灯片切换)使用阐释时所需的信息(如切换属性)进行标记,然后由主机程序呈现。
MSDN 库中的以下位置全面介绍了 Microsoft Word、Microsoft PowerPoint、Microsoft Excel 和 Microsoft Outlook 使用的文件格式:Microsoft Office File Format Documents (该链接可能指向英文页面)。您可以从那里直接在 MSDN 网站上或以 .pdf 文件格式打开相应文件格式的完整规范。
注释:
在 Microsoft Office 中执行大多数编程任务的推荐方法是使用Office 主互操作程序集 (该链接可能指向英文页面)。这些程序集是一组提供可用于 Microsoft Office 的完整对象模型的 .NET 类。本系列文章只涉及高级方案,如未安装 Microsoft Office 的情形。
哪些版本的 Microsoft Office 使用二进制文件格式文件?
本文讨论的 Microsoft Office 二进制文件格式主要由 Microsoft Outlook、Microsoft Excel 和以前版本的 Microsoft Word 和 Microsoft PowerPoint 使用。Microsoft Office Word 2007 和 Office PowerPoint 2007 使用基于 XML 的文件格式作为其默认文件格式,而 Microsoft Excel 2010 使用较新的二进制格式。下表显示适用于特定版本的 Word、Excel、PowerPoint 和 Outlook 的二进制文件格式文件。
文件格式 应用程序版本
MS-DOC
MS-PPT
MS-PST
MS-XLS
MS-XLSB
需要使用 Microsoft Office 文件但未安装原始主机应用程序的公司也使用基于 Microsoft Office 二进制文件格式的文件。Microsoft 以外的一些常见使用情形包括自定义跨文档搜索工具,从受损文件恢复数据或者为了与其他应用程序兼容而进行读取和写入。
查看基于 Microsoft Office 二进制文件格式的文件中的内容
到目前为止,查看 Microsoft Office 二进制文件的最简单方法是使用创建该文件的主机程序。例如,通过使用 Word 查看 .doc 文件,或使用 PowerPoint 查看 .ppt 文件。该方法可向用户显示内容的视图,如文本、格式和用户界面的一般状态。
您可以使用 Office 可视化工具 offvis.exe 获得结构更清晰的二进制文件视图。通过下面的链接,您可以直接从下载中心下载此工具:(该链接可能指向英文页面)。将任何 Microsoft Office 二进制文件加载到可视化工具中时,您会看到两个窗格。导航窗格显示原始文件内容,每行均显示当前偏移量、一个十六进制数字链,及其文本表示形式(如果有)。结果窗格显示包含当前数据结构的名称、值、偏移位置、大小和类型的分析结果。下面的屏幕截图显示可视化工具中包含“Hello, world”文本的 .doc 文件的一部分。其中选择了字母“w”。这会导致可视化工具突出显示相应的十六进制数字和数据结构。
图 1. offvis.exe 中呈现的 HelloWorld.doc
创建自定义二进制文件格式查看器
您可以创建自定义查看器,然后利用它来设定特定内容的目标,或熟悉文件格式。您的查看器必须读取数据流,解释其中的结构,并在不同的偏移值之间导航以查找要显示的文本和任何其他内容。对于每个文件类型,这些数据结构都是不同的,但在每种情形下,过程是类似的。
查找基于二进制文件格式的文件中的内容
读取文件流。
识别可能包含要查找的内容的结构。
在第一个结构中,找到指定要查找的下一节的位置的偏移值。
在流中转到该节。
重复前面两个步骤,直到找到所需的内容。
读取并分析内容。
根据您的需要,简单的文本提取程序可能需要不到 100 行代码,模拟原始主机程序可能需要几百万行代码。
编辑基于 Office 二进制文件格式的文件
一般来说,任何时候都不要尝试直接编辑 Microsoft Office 二进制文件,而应使用“保存”操作,这与将文档发送到打印机类似。例如,当打印 Word 文档时,您不会将整个 .doc 文件发送到打印机进行呈现。相反,Word 会创建文档的快照,其格式根据打印机规范进行设置。打印机可能有解释字体的逻辑,但所有布局信息均由发送应用程序处理。
同样,当以二进制格式保存文件时,主机应用程序会在内存中将数据转换为指定的二进制格式,并创建文件。如果已存在具有相同名称的文件,则新文件会覆盖原来的文件。
此方法有诸多优点。
所以,编辑二进制格式文件的过程实际上包括三个步骤。
编辑基于二进制文件格式的文件
将文件读取为内部表示形式。
在应用程序中编辑该内部表示形式。
将该表示形式保存为二进制格式,使用与源文件相同的文件名和位置。
结论
了解和使用二进制文件格式可能是个挑战。希望通过了解基础结构和尝试本系列文章中提供的一些过程,您可以仅通过开放规范文档和一些可下载工具来深入研究更复杂的实现方案。
其他资源
有关详细信息,请参阅以下资源:

猜你喜欢

浅析影视改编作品的著作权问题


是一个汉族女孩嫁给回族男孩的经过


套装门的价格公式是怎么算的?


公司主营的产品有:七氟丙烷检测年检,七氟丙烷检测维修,七氟丙烷检测检修


插入式电磁流量计的安装方式有哪些


联想yoga电池鼓包维修更换电池,北京联想电脑维修服务


《汽修维修工》各类机械润滑脂选择与应用、汽车轮胎规格参数、14种轴承特点、区别和用途、汽车发动机构造等知识-高级重点培训考试学习


乌托邦的此时此刻:法国纪录影片《直接行动》中的“保护区”


【古筝课堂】十首古筝名曲弹奏--重难点点评


厌倦了人山人海?日本小众景点你知道吗?


如何在 CentOS 8/RHEL 8 上安装和配置 Nagios Core


2025年智能烧水壶选购指南:从百元性价比到千元高端款全解析


预备提请审议人民警察法修订草案


商场新买的热水器竟是“三年陈”!家电消费如何维权,看这里


装修陷阱大起底,猫腻太多坑你没商量!


搭建Java开发环境


容声冰箱售后服务电话多少?保修有什么注意事项?


永发保险柜服务电话(全国统一网点)24小时400客服热线


民用航空器维修人员执照考试怎么报名


重庆水务(601158)经营总结
