当前所在位置: 首页 > 维修大全

微软官方知识:了解 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 会创建文档的快照,其格式根据打印机规范进行设置。打印机可能有解释字体的逻辑,但所有布局信息均由发送应用程序处理。

同样,当以二进制格式保存文件时,主机应用程序会在内存中将数据转换为指定的二进制格式,并创建文件。如果已存在具有相同名称的文件,则新文件会覆盖原来的文件。

此方法有诸多优点。

所以,编辑二进制格式文件的过程实际上包括三个步骤。

编辑基于二进制文件格式的文件

将文件读取为内部表示形式。

在应用程序中编辑该内部表示形式。

将该表示形式保存为二进制格式,使用与源文件相同的文件名和位置。

结论

了解和使用二进制文件格式可能是个挑战。希望通过了解基础结构和尝试本系列文章中提供的一些过程,您可以仅通过开放规范文档和一些可下载工具来深入研究更复杂的实现方案。

其他资源

有关详细信息,请参阅以下资源:

阅读全文
加载中~
相关推荐

太原阿里斯顿热水器,阿里斯顿热水器安全阀|混水阀漏水维修

太原阿里斯顿热水器,阿里斯顿热水器安全阀|混水阀漏水维修
搜了网太原阿里斯顿热水器,阿里斯顿热水器安全阀|混水阀漏水详细说明信息,由太原维...

【人社考培】云南汽车维修工考培~

【人社考培】云南汽车维修工考培~
汽车维修工是负责对车辆进行维修、保养和故障排除的技术人员。他们使用专业工具和检测...

武汉美的售后维修(如何联系客服并解决问题)

武汉美的售后维修(如何联系客服并解决问题)
作为全球知名的家电品牌,美的在中国市场拥有广泛的用户群体。在使用美的家电时,难免...

江安美的空调售后电话,通常是这些原因

江安美的空调售后电话,通常是这些原因
江安美的空调售后电话是空调常见的故障之一,不仅会影响室内空气质量,还可能导致机器...

轮胎翻新技术:延长使用寿命,了解轮胎翻新技术的原理和优势

轮胎翻新技术:延长使用寿命,了解轮胎翻新技术的原理和优势
什么是轮胎翻新技术?轮胎翻新技术是指将旧轮胎进行翻新处理,恢复轮胎的使用性能和外...

沈阳明夜起正式开栓供暖,供暖权威解答都在这里了!

沈阳明夜起正式开栓供暖,供暖权威解答都在这里了!
暖气不热,你先试试这些方法

如果买一台二手车,做哪些翻新是很有必要的?

如果买一台二手车,做哪些翻新是很有必要的?
尽管新车看起来光鲜又亮丽,但其实真正懂行的人都会买二手车。不仅价格便宜,性价比高...

开了17年本田车的老司机亲测:这三个保养技巧让你的爱车多开15年

开了17年本田车的老司机亲测:这三个保养技巧让你的爱车多开15年
“本田车开不坏,一车传三代”的江湖传言是否可信?作为拥有17年本田车龄、累计行驶...

那些年,魔兽世界中的拉风坐骑

<strong>那些年,魔兽世界中的拉风坐骑</strong>
魔兽世界里有着众多稀有坐骑。曾经需要一个团队才能down掉的boss,如今因为等...

燕郊电脑维修

燕郊电脑维修
燕郊电脑维修 燕郊附近电脑维修 燕郊维修电脑[6图]03-13北京修沙发塌陷修椅...
本站访客:6024
1097476955
服务热线

服务热线

18951535724

18951535724
返回顶部