先把问题解决
保留原DOCX,在Word工具选择DOCX内容提取,下载并重新打开docx-content.zip。document.txt可用于查找正文,但不能当成通用表格协议。本例应回原表核对三条记录,保留Folders未提供;12+2=14只是已提供数量的局部和。页眉页脚标记不在这个正文提取结果内。
先确认这一入口实际交付哪些文件
进入Word工具,选择DOCX内容提取。当前入口接收DOCX文件,生成docx-content.zip,其中document.txt来自正文XML;内嵌媒体另存到images目录。它不是把每个可见页面按原布局打印成文本,也不是逐张图片的OCR。
Microsoft对WordprocessingML表格的说明把表、行和单元格分别表示为tbl、tr与tc等结构。正文里的文本只是其中一部分;去掉标记后有文字,并不代表这些关系仍然存在。
| 对象 | 可以用来做什么 | 边界与保留要求 |
|---|---|---|
| 原DOCX | 查看正文布局、表格及其他文档部分 | 必须保留,不被提取副本覆盖 |
| document.txt | 阅读和查找提取的正文文字 | 不能保证完整单元格关系、样式与页面布局 |
| images目录 | 检查内嵌媒体资源 | 不保证与页面位置逐一自动对应,也不完成图片文字识别 |
三行样本:一格空白怎样改变你的判断
这是编辑自编的非私人样本:建立两列Item和Count,三行依次为Pens与12、Folders与空白、Tape与2。原表只有Pens和Tape有数量;Folders的空白表示未提供,不表示0,也不应从下一行借一个数字。
把这份DOCX提取为文本后,逐项寻找Item、Count、Pens、12、Folders、Tape、2。即使全部找到了,也只证明文字可定位;不能把连续两行自动当成一条记录。Word允许一个单元格有多个段落,空白格也可能留下不同的空行形式。
如果你要给同事一张可计算的表,应回到原表核对行列,再记录Pens=12、Folders=未提供、Tape=2。人工参考中的两个已提供数量合计14,但不能据此宣称原表三项总量完整。
| Item | Count原值 | 交接时的语义 |
|---|---|---|
| Pens | 12 | 已有明确数量 |
| Folders | 空白 | 未提供,不能自动变0 |
| Tape | 2 | 只属于Tape这一行 |
把文字存在误当成表格正确
每两行取一组,遇到空白就跳过,然后把Tape配成Folders的数量或名称。
按原表的行列身份重建三条记录,保留Folders未提供;逐行核对Pens12与Tape2。
完整建表材料:先在编辑器保存真正的DOCX
先建立只有一张三行数据表的小文档,不加入图片、批注或复杂对象。用编辑器的插入表格功能建立2列、4行(含表头),不要把用空格对齐的文本当成表格。Folders的Count单元格保留空白。
在页眉放HEADER-ONLY-28,正文表格前后分别放BODY-BEGIN-28和BODY-END-28,在页脚放FOOTER-ONLY-28。另写说明:空白表示未提供,12+2=14是已提供数量的局部和。保存为source.docx后重新打开,检查三行与四个标记;编辑器的分页和默认格式可以不同,事实内容必须一致。
表格里的“留空”是操作说明,实际Count单元格不输入这几个字,也不输入0。
| Item | Count |
|---|---|
| Pens | 12 |
| Folders | (留空,不填0) |
| Tape | 2 |
先做一个小文档,再处理长材料
练习ZIP不含预制DOCX,包含source-table.csv、source-definition.json、双语BUILD说明、reconstructed.csv、wrong-zero.csv与expected.json。先按前节在自己的Word兼容编辑器建立原件,重新打开确认标记和表格,再进行提取。CSV参考答案是人工重建的格式,不是工具自动导出的表格。
本例没有图片,提取后的docx-content.zip预期只有document.txt,不会因为没有images目录就算失败。实际含word/media资源的文件才会导出相应媒体文件;这不是OCR,也不是把Word原样打包回来。
- 打开Word工具,选择“DOCX内容提取”,上传你已保存的source.docx。不要选Word转PDF,也不要把CSV改扩展名伪装成DOCX。
- 点击处理并下载,保存为独立的提取结果ZIP;与练习下载包区别命名。
- 解压提取ZIP,确认只有document.txt。打开文本,检查两个BODY标记以及Item、Count、Pens、12、Folders、Tape、2。
- 搜索HEADER-ONLY-28和FOOTER-ONLY-28,两者应未进入本例TXT。它们在原DOCX可见,因此这份正文提取不能称为全部页面文字。
- 并排看原DOCX表格,重建Item / Count / CountStatus三列:Pens / 12 / supplied;Folders / 空白 / not_supplied;Tape / 2 / supplied。
- 逐行比较reconstructed.csv参考答案,再检查wrong-zero.csv:即便两份数值求和都可能得到14,把Folders填0仍添加了原文没有的事实。
三行样本验收
- Pens对应12,Tape对应2。
- Folders的数量明确标为未提供。
- 没有用固定每两行配对替代原表核查。
- 已提供数量的局部和14与完整总量的未知分开记录。
- 原DOCX、提取包和重建表有不同文件名。
正文XML之外的内容,不能默认算已提取
当前这条提取路线读取word/document.xml,不遍历所有页眉、页脚、批注等文档部分。文档还可能含文本框、修订、嵌入对象或其他复杂结构;没有逐项核对时,不把输出称作“全部文字无遗漏”。扫描图片中的字也不会因为出现在媒体目录就自动变成正文文本。
素材与页面布局的区别可继续阅读Word内嵌图片与可见裁切的关系。如果要把核对后的数据填回文件,参考Excel或CSV填充Word模板,先验收一份,不用错误表格批量制造新文档。
按后续任务保留材料
只是检索正文
保留TXT与原文件,关键命中回原文定位。
要保留页面外观
另用适合布局保留的导出方式,并检查页面。
要计算表格
从原表建立明确行列与缺失值约定,不能只依赖纯文本。
提取失败与“提取完整”是两个判断
旧的.doc文件、加密或损坏文件可能不适用于此入口。即使DOCX格式可读,也不等于每一种复杂对象都已得到保留;先用小样本确认当前行为,再记录长文档里尚未验收的部分。处理在浏览器本地完成,保留原件以便重新检查。
这份教程给出的是可复用的材料与核对方法,不承诺任意Word版本和文档结构的无损转换。需要保留证据或正式档案时,原DOCX和接收方要求仍是交付依据,TXT只承担已经核实的用途。
本例的交付依据是你实际保存并重新打开的原DOCX、实际提取ZIP和逐格核对后的重建表。练习包提供完整建表材料,便于在自己的编辑器复现;不同编辑器的分页可以不同。复杂对象、加密文件或长文档需要另外验收,不能把三行小样本的结果推广为任意Word都无损。
算出14仍可能交错:用逐格核对补上总量检查
reconstructed.csv的Count列保留空白,另用CountStatus说明未提供。这个状态列是人工核对后新增的交接字段,不是DOCX提取器自动识别的语义。先写清新增字段的含义,再交给下一位处理者,避免他把空白当作导出漏格。
wrong-zero.csv故意把Folders写成0、状态写成supplied。它仍有三行,已知数字和仍是14,所以“行数正确+合计正确”两项都不能抓出这次错误。必须比较Folders原单元格和缺失状态。确认原材料缺少数量时,保留未提供并追问资料,不从其他行借值,也不以0补齐。
遇到顺序或来源不明的TXT,停止自动按固定行数配对,回原DOCX重建。找不到原件时只能交付可定位文字及未完成核对的说明,不能制造完整表。保留source DOCX、实际提取ZIP、人工重建CSV和核对说明;单独下载练习包或成功提取不等于完成这四项验收。
| 检查 | 正确参考 | 错误补零副本 | 能否区分 |
|---|---|---|---|
| 数据记录数 | 3 | 3 | 不能 |
| 已提供数值和 | 14 | 14 | 不能 |
| Folders原值与状态 | 空白 / not_supplied | 0 / supplied | 能,需回原表 |
| 完整三项总量 | 未知 | 被错误解释为14 | 不能用局部和代替 |
常见问题
空白能不能统一写成0,方便求和?
只有原任务明确把空白定义为零时才能这样处理。本例空白是未提供,写0会添加原文没有的事实。
TXT里换行保留得很好,就能按固定行数恢复表格吗?
不能普遍这样做。单元格可含多个段落,也可能为空;需要原表或明确的结构化分隔协议来判断列关系。
ZIP里的图片数量与文档里看到的图片次数一定相同吗?
不能保证。媒体文件与页面上的引用次数不是同一对象;一个资源可能被引用多次,也可能存在未使用资源,应对照原文核查。
参考资料与延伸阅读
按步骤开始处理
进入对应工具,预览处理结果,检查导出的文件。


