Python高效提取与自动化处理Word表格的完整指南
在日常办公和自动化处理场景中Word 文档DOC/DOCX依然是最常见的数据载体之一。许多业务数据、统计报表、合同条款或配置信息往往以表格的形式存在于 Word 文档中。当我们需要对这些表格数据进行进一步处理如导入数据库、转换为 Excel、生成报表或进行数据分析时手动复制粘贴显然效率低下也容易出错。借助 Python 以及专业的文档处理库我们可以实现自动化提取 Word 表格内容并将其保存为结构化文本文件或其他格式。本文将详细介绍如何使用Spire.Doc for Python从 Word 文档中逐个提取表格并将表格内容导出为文本文件。为什么选择 Spire.Doc for Python在众多 Python 文档处理方案中Spire.Doc for Python 是一款面向开发者的专业 Word 文档处理库具备以下显著优势无需依赖 Microsoft Word纯 Python 实现适合服务器和自动化环境支持完整 Word 结构段落、表格、页眉页脚、样式等均可访问API 设计清晰面向对象逻辑与 Word 文档结构高度一致稳定可靠适合批量处理与企业级应用场景在提取表格这种涉及文档层级遍历的任务中Spire.Doc 提供了非常直观的对象模型使代码既清晰又易于维护。实现思路概述从 Word 中提取表格本质上是对 Word 文档结构的逐层遍历。整体流程如下加载 Word 文档遍历文档中的所有 Section节在每个 Section 中获取所有表格Table遍历表格中的行Row和单元格Cell读取单元格内的段落文本按行列结构拼接表格数据将每个表格保存为独立的文本文件这种方式不仅能够完整保留表格结构也便于后续扩展为 CSV、Excel 或数据库导入逻辑。准备工作在开始之前请确保你的环境已准备就绪• Python 3.x• 已安装spire.docSpire.Doc for Python安装方式示例1pipinstallspire-doc安装完成后即可在 Python 项目中直接引用相关模块。示例代码从 Word 提取表格并保存为文本文件下面是完整的示例代码用于从 Word 文档中提取所有表格并将每个表格保存为一个.txt文件。1234567891011121314151617181920212223242526272829303132333435363738394041424344454647fromspire.docimport*fromspire.doc.commonimport*# 创建 Document 实例docDocument()# 加载 Word 文档doc.LoadFromFile(Input.docx)# 遍历文档中的所有节Sectionforsinrange(doc.Sections.Count):# 获取当前节sectiondoc.Sections.get_Item(s)# 获取当前节中的所有表格tablessection.Tables# 遍历当前节中的表格foriinrange(0, tables.Count):# 获取表格对象tabletables.get_Item(i)# 用于存储当前表格数据的字符串tableData# 遍历表格中的所有行forjinrange(0, table.Rows.Count):# 遍历当前行中的所有单元格forkinrange(0, table.Rows.get_Item(j).Cells.Count):# 获取单元格对象celltable.Rows.get_Item(j).Cells.get_Item(k)# 用于存储单元格中的文本内容cellText# 遍历单元格中的所有段落forparainrange(cell.Paragraphs.Count):paragraphTextcell.Paragraphs.get_Item(para).TextcellText(paragraphText )# 将单元格文本追加到表格数据字符串中tableDatacellText# 如果不是最后一个单元格则添加制表符作为列分隔符ifk table.Rows.get_Item(j).Cells.Count-1:tableData\t# 当前行结束后添加换行符tableData\n# 将表格数据保存为文本文件withopen(foutput/Tables/WordTable_{s1}_{i1}.txt,w, encodingutf-8) as f:f.write(tableData)# 关闭文档释放资源doc.Close()代码详解下面我们对核心代码逻辑进行逐步解析帮助你更好地理解其工作原理。1. 加载 Word 文档12docDocument()doc.LoadFromFile(Input.docx)这里创建了一个Document实例并加载指定路径下的 Word 文件。Document是 Spire.Doc 中表示整个 Word 文档的核心对象。2. 遍历文档中的 Section12forsinrange(doc.Sections.Count):sectiondoc.Sections.get_Item(s)在 Word 中文档可能由多个 Section 组成例如分页、不同页眉页脚设置。为了不遗漏任何表格我们需要遍历所有 Section。3. 获取并遍历表格123tablessection.Tablesforiinrange(0, tables.Count):tabletables.get_Item(i)每个 Section 都可能包含多个表格。通过section.Tables可以直接获取该节中的所有表格对象。4. 遍历行和单元格123forjinrange(0, table.Rows.Count):forkinrange(0, table.Rows.get_Item(j).Cells.Count):celltable.Rows.get_Item(j).Cells.get_Item(k)表格由行和单元格组成。这里采用双层循环确保按“行 → 列”的顺序读取数据从而保持原有表格结构。5. 读取单元格中的段落文本123forparainrange(cell.Paragraphs.Count):paragraphTextcell.Paragraphs.get_Item(para).TextcellText(paragraphText )一个单元格中可能包含多个段落例如手动换行。因此需要遍历cell.Paragraphs并将所有段落文本拼接起来确保内容完整。6. 拼接表格数据123tableDatacellTexttableData\ttableData\n• 使用制表符\t分隔列• 使用换行符\n分隔行这种格式非常适合后续转换为 Excel、CSV或直接导入数据库。7. 保存为文本文件12withopen(foutput/Tables/WordTable_{s1}_{i1}.txt,w, encodingutf-8) as f:f.write(tableData)每个表格都会被单独保存为一个文本文件文件名中包含 Section 和 Table 的索引便于区分来源。应用场景拓展基于本文示例代码你可以轻松扩展到更多实际应用场景例如将提取的表格数据转换为CSV 或 Excel自动解析 Word 报表并导入数据库系统批量处理合同或业务文档中的表格信息与数据分析或 BI 工具进行对接Spire.Doc for Python 提供的丰富 API使这些扩展变得非常自然。总结本文介绍了如何使用Spire.Doc for Python从 Word 文档中自动提取表格内容并将其保存为文本文件。通过对 Word 文档结构Section、Table、Row、Cell、Paragraph的逐层遍历我们能够完整、准确地获取表格数据并为后续的数据处理和自动化流程打下坚实基础。如果你正在寻找一种稳定、高效、无需依赖 Office 环境的 Word 表格提取方案那么 Spire.Doc for Python 无疑是一个值得考虑的选择。