Python高效提取与自动化处理Word表格的完整指南

Written by

in

文章目录
  • 在众多 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.doc(Spire.Doc for Python) 安装方式示例: pip install spire-doc 安装完成后,即可在 Python 项目中直接引用相关模块。
  • 下面是完整的示例代码,用于从 Word 文档中提取所有表格,并将每个表格保存为一个 .txt 文件。 from spire.doc import * from spire.doc.common import * # 创建 Document 实例 doc = Document() # 加载 Word 文档 doc.LoadFromFile(“Input.docx”) # 遍历文档中的所有节(Section) for s in range(doc.Sections.Count): # 获取当前节 section = doc.Sections.get_Item(s) # 获取当前节中的所有表格 tables = section.Tables # 遍历当前节中的表格 for i in range(0, tables.Count): # 获取表格对象 table = tables.get_Item(i) # 用于存储当前表格数据的字符串 tableData = ” # 遍历表格中的所有行 for j in range(0, table.Rows.Count): # 遍历当前行中的所有单元格 for k in range(0, table.Rows.get_Item(j).Cells.Count): # 获取单元格对象 cell = table.Rows.get_Item(j).Cells.get_Item(k) # 用于存储单元格中的文本内容 cellText = ” # 遍历单元格中的所有段落 for para in range(cell.Paragraphs.Count): paragraphText = cell.Paragraphs.get_Item(para).Text cellText += (paragraphText + ‘ ‘) # 将单元格文本追加到表格数据字符串中 tableData += cellText # 如果不是最后一个单元格,则添加制表符作为列分隔符 if k < table.Rows.get_Item(j).Cells.Count – 1: tableData += ‘t’ # 当前行结束后,添加换行符 tableData += ‘n’ # 将表格数据保存为文本文件 with open(f’output/Tables/WordTable_{s+1}_{i+1}.txt’, ‘w’, encoding=’utf-8′) as f: f.write(tableData) # 关闭文档,释放资源 doc.Close()
  • 下面我们对核心代码逻辑进行逐步解析,帮助你更好地理解其工作原理。
  • 基于本文示例代码,你可以轻松扩展到更多实际应用场景,例如: 将提取的表格数据转换为 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 无疑是一个值得考虑的选择。 以上就是Python高效提取与自动化处理Word表格的完整指南的详细内容,更多关于Python Word处理的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Python实现Word图片提取与批量处理的最佳实践 Python自动化提取多个Word文档的文本 使用实现Python从Word文档中批量提取表格数据 使用Python开发提取word所有表格信息的程序 Python自动化处理Word文档表格格式的方法技巧 Python自动化处理Excel、Word、PDF文档的操作大全 Python实现Word文档自动化处理操作
  • 目录
    • 为什么选择 Spire.Doc for Python
    • 实现思路概述
    • 准备工作
    • 示例代码:从 Word 提取表格并保存为文本文件
    • 代码详解
      • 1. 加载 Word 文档
      • 2. 遍历文档中的 Section
      • 3. 获取并遍历表格
      • 4. 遍历行和单元格
      • 5. 读取单元格中的段落文本
      • 6. 拼接表格数据
      • 7. 保存为文本文件
    • 应用场景拓展
      • 总结

        在日常办公和自动化处理场景中,Word 文档(DOC/DOCX)依然是最常见的数据载体之一。许多业务数据、统计报表、合同条款或配置信息,往往以表格的形式存在于 Word 文档中。当我们需要对这些表格数据进行进一步处理(如导入数据库、转换为 Excel、生成报表或进行数据分析)时,手动复制粘贴显然效率低下,也容易出错。

        借助 Python 以及专业的文档处理库,我们可以实现 自动化提取 Word 表格内容 ,并将其保存为结构化文本文件或其他格式。本文将详细介绍如何使用 Spire.Doc for Python ,从 Word 文档中逐个提取表格,并将表格内容导出为文本文件。

        在众多 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.doc(Spire.Doc for Python)

        安装方式示例:

        pip install spire-doc
        

        安装完成后,即可在 Python 项目中直接引用相关模块。

        下面是完整的示例代码,用于从 Word 文档中提取所有表格,并将每个表格保存为一个 .txt 文件。

        from spire.doc import *
        from spire.doc.common import *
        
        # 创建 Document 实例
        doc = Document()
        
        # 加载 Word 文档
        doc.LoadFromFile("Input.docx") 
        
        # 遍历文档中的所有节(Section)
        for s in range(doc.Sections.Count):
            # 获取当前节
            section = doc.Sections.get_Item(s)
            # 获取当前节中的所有表格
            tables = section.Tables
            # 遍历当前节中的表格
            for i in range(0, tables.Count):
                # 获取表格对象
                table = tables.get_Item(i)
                # 用于存储当前表格数据的字符串
                tableData = ''
                # 遍历表格中的所有行
                for j in range(0, table.Rows.Count):
                    # 遍历当前行中的所有单元格
                    for k in range(0, table.Rows.get_Item(j).Cells.Count):
                        # 获取单元格对象
                        cell = table.Rows.get_Item(j).Cells.get_Item(k)
                        # 用于存储单元格中的文本内容
                        cellText = ''
                        # 遍历单元格中的所有段落
                        for para in range(cell.Paragraphs.Count):
                            paragraphText = cell.Paragraphs.get_Item(para).Text
                            cellText += (paragraphText + ' ')
                        # 将单元格文本追加到表格数据字符串中
                        tableData += cellText
                        # 如果不是最后一个单元格,则添加制表符作为列分隔符
                        if k < table.Rows.get_Item(j).Cells.Count - 1:
                            tableData += 't'
                    # 当前行结束后,添加换行符
                    tableData += 'n'
            
                # 将表格数据保存为文本文件
                with open(f'output/Tables/WordTable_{s+1}_{i+1}.txt', 'w', encoding='utf-8') as f:
                    f.write(tableData)
        
        # 关闭文档,释放资源
        doc.Close()
        

        下面我们对核心代码逻辑进行逐步解析,帮助你更好地理解其工作原理。

        doc = Document()
        doc.LoadFromFile("Input.docx")
        

        这里创建了一个 Document 实例,并加载指定路径下的 Word 文件。Document 是 Spire.Doc 中表示整个 Word 文档的核心对象。

        for s in range(doc.Sections.Count):
            section = doc.Sections.get_Item(s)
        

        在 Word 中,文档可能由多个 Section 组成(例如分页、不同页眉页脚设置)。为了不遗漏任何表格,我们需要遍历所有 Section。

        tables = section.Tables
        for i in range(0, tables.Count):
            table = tables.get_Item(i)
        

        每个 Section 都可能包含多个表格。通过 section.Tables 可以直接获取该节中的所有表格对象。

        for j in range(0, table.Rows.Count):
            for k in range(0, table.Rows.get_Item(j).Cells.Count):
                cell = table.Rows.get_Item(j).Cells.get_Item(k)
        

        表格由行和单元格组成。这里采用双层循环,确保按“行 → 列”的顺序读取数据,从而保持原有表格结构。

        for para in range(cell.Paragraphs.Count):
            paragraphText = cell.Paragraphs.get_Item(para).Text
            cellText += (paragraphText + ' ')
        

        一个单元格中可能包含多个段落(例如手动换行)。因此,需要遍历 cell.Paragraphs,并将所有段落文本拼接起来,确保内容完整。

        tableData += cellText
        tableData += 't'
        tableData += 'n'
        
        • • 使用 制表符(t) 分隔列
        • • 使用 换行符(n) 分隔行

        这种格式非常适合后续转换为 Excel、CSV,或直接导入数据库。

        with open(f'output/Tables/WordTable_{s+1}_{i+1}.txt', 'w', encoding='utf-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 无疑是一个值得考虑的选择。

        以上就是Python高效提取与自动化处理Word表格的完整指南的详细内容,更多关于Python Word处理的资料请关注风君子博客其它相关文章!

        您可能感兴趣的文章:

        • Python实现Word图片提取与批量处理的最佳实践
        • Python自动化提取多个Word文档的文本
        • 使用实现Python从Word文档中批量提取表格数据
        • 使用Python开发提取word所有表格信息的程序
        • Python自动化处理Word文档表格格式的方法技巧
        • Python自动化处理Excel、Word、PDF文档的操作大全
        • Python实现Word文档自动化处理操作

        站内搜索