Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第1章:Word文档格式概述

学习目标

  • 了解什么是Word文档格式
  • 理解为什么需要深入理解Word格式
  • 区分.doc和.docx格式的差异
  • 认识在开发中处理Word文档的常见场景

1.1 什么是Word文档格式

当我们在Microsoft Word中编辑文字、设置格式、插入图片后点击保存,Word会将我们的工作转换成一个文件存储在磁盘上。这个文件遵循特定的结构规范,这个结构规范就是Word文档格式

文档格式就像是一种约定:Word程序按照约定将内容写入文件,下次打开时再按照约定读取出来,就能还原我们编辑的文档。理解了这个约定,我们就可以不通过Word程序,直接读取、创建、修改Word文档。

文档格式包含什么

一个Word文档不仅仅包含纯文本,它还包含:

  • 文本内容:我们输入的文字
  • 格式信息:字体、字号、颜色、对齐方式、缩进等
  • 结构信息:段落、章节、表格、页眉页脚等
  • 嵌入对象:图片、图表、OLE对象等
  • 元数据:作者、创建时间、修改时间、标题等
  • 附加信息:批注、修订、追踪等

为什么要理解文档格式

对于普通用户来说,只需要会用Word编辑文档就够了。但在很多场景下,理解文档格式是非常必要的:

  1. 批量生成文档:根据模板批量生成合同、报告、发票
  2. 批量提取数据:从大量Word文档中提取特定信息
  3. 文档转换:将Word转换为PDF、HTML、Markdown等其他格式
  4. 修复损坏文档:当Word无法打开损坏文档时,可以通过理解格式来提取内容
  5. 开发文档处理系统:开发在线文档编辑、协作文档系统
  6. 自动化处理:文档审核、格式检查、批量转换等自动化任务

1.2 .doc vs .docx:两种格式,两个时代

Word现在主要使用两种文件扩展名:.doc.docx。它们代表了两种完全不同的文件格式。

.doc:二进制格式时代

从Word 1.0到Word 2003,Word默认使用.doc扩展名,这是一种二进制文件格式

二进制格式的特点:

  • 文件内容是二进制字节流,不能直接用文本编辑器查看
  • 格式复杂,不公开(早期),解析难度大
  • 文件体积相对较大
  • 损坏一小块可能导致整个文件无法打开

虽然现在已经很少使用.doc格式了,但在一些旧系统和老旧文档中你仍然可能遇到它。

.docx:Open XML时代

从Word 2007开始,Microsoft Word默认使用.docx扩展名,这是基于Open XML标准的XML格式。

Open XML格式的特点:

  • 本质上是一个ZIP压缩包,包含多个XML文件
  • 每个XML文件存储不同类型的内容
  • 格式开放,符合ECMA/ISO国际标准
  • 基于文本的XML,易于处理和调试
  • 压缩存储,文件体积更小
  • 损坏隔离,一部分损坏不影响其他部分读取

本书只关注.docx格式,这是现在和未来的主流格式。

格式对比

特性.doc.docx
格式类型二进制ZIP + XML
标准私有格式开放标准
文件大小较大较小(压缩)
可解析性困难相对容易
容错性整体损坏部分损坏可恢复
使用现状遗留系统当前主流

1.3 开发中的常见场景

让我们来看几个实际工作中需要处理Word文档的场景,理解理解格式为什么重要。

场景一:批量生成合同

一家企业法务部门每个月要生成几十份劳动合同,员工信息存在数据库里。

如果手动操作:

  1. 打开模板
  2. 替换姓名、职位、日期等占位符
  3. 另存为新文件
  4. 重复几十次

这个过程机械重复,耗时且容易出错。

如果理解.docx格式:

  • 可以编写程序,自动读取模板
  • 从数据库读取数据替换占位符
  • 批量生成所有合同文件
  • 整个过程全自动,几秒钟完成

场景二:从简历中提取信息

HR收到了几百份求职者的Word简历,需要将姓名、电话、工作经验等信息提取到数据库中。

如果手动操作:一个个打开复制粘贴,工作量巨大。

如果理解.docx格式:

  • 编写程序批量遍历所有文件
  • 自动提取文本内容
  • 使用正则表达式或NLP识别关键信息
  • 直接导入数据库

场景三:文档批量转换为PDF

客户要求把网站上的一百多个Word文档全部转换成PDF供用户下载。

手动打开一个个另存为PDF太麻烦,理解格式后可以用程序批量自动转换。

场景四:修复损坏的文档

一个重要的Word文档因为存储介质问题损坏了,Word无法打开,但内容非常重要。

理解格式后:

  • .docx是ZIP包,可以尝试修复ZIP结构
  • XML文件分开存储,好的部分可以提取出来
  • 最大程度挽救内容

1.4 阅读本书需要的基础知识

阅读本书不需要太多前置知识,但了解以下内容会帮助你更好地理解:

推荐基础知识:

  • 基本的XML概念(标签、属性、命名空间)
  • 基本的文件系统知识
  • 至少会一门编程语言(Python/Java/C#等)
  • 会使用Word基本操作

即使你对XML不太熟悉,也不用担心,本书会在合适的地方进行讲解。


本章小结

  • Word文档格式是Word存储内容的约定,理解它才能进行编程处理
  • .doc是旧的二进制格式,.docx是新的Open XML格式
  • 本书只关注.docx格式,这是当前主流
  • 批量生成、批量提取、格式转换、修复损坏文档都需要理解文档格式
  • 具备基本XML和编程知识就可以阅读本书

下一章,我们来了解Word格式从二进制到XML的演化历史。