在数据处理和文档分析的过程中,有时我们需要从多个 Word 文档中提取特定的表格信息并将其保存为一个 Excel 文件。通过自动化处理,我们可以节省大量的时间并提高工作效率。本文将介绍如何使用 Python 来批量读取 Word 文档中的特定表格,并将其保存为 Excel 文件。

环境准备

在开始之前,我们需要安装一些必要的库。可以使用 pip 安装 python-docxpandas 这两个库:

pip install python-docx pandas openpyxl
  • python-docx 是一个用于读取和写入 Word 文档的库。
  • pandas 是一个强大的数据处理库,用于处理表格数据。
  • openpyxl 是用于读取和写入 Excel 文件的库。

代码示例

以下是一个示例代码,用于批量读取 Word 文档中的特定表格,并将数据保存到 Excel 文件中:

import os
from docx import Document
import pandas as pd

def extract_table_from_docx(docx_path, table_index):
    """从指定的 Word 文档中提取特定的表格数据."""
    doc = Document(docx_path)
    # 检查文档中是否有表格
    if len(doc.tables) > table_index:
        table = doc.tables[table_index]
        data = []
        # 遍历表格中的每一行
        for row in table.rows:
            row_data = [cell.text.strip() for cell in row.cells]
            data.append(row_data)
        return data
    else:
        print(f"文档 {docx_path} 中没有找到指定的表格.")
        return None

def main(folder_path, table_index, output_excel):
    """从指定文件夹中的所有 Word 文档中提取表格,并保存为 Excel 文件."""
    all_data = []  # 用于保存所有提取的数据
    for filename in os.listdir(folder_path):
        if filename.endswith('.docx'):
            docx_path = os.path.join(folder_path, filename)
            print(f"正在处理: {docx_path}")
            table_data = extract_table_from_docx(docx_path, table_index)
            if table_data:
                all_data.extend(table_data)

    # 将合并的数据转换为 DataFrame
    df = pd.DataFrame(all_data)
    # 将数据保存为 Excel 文件
    df.to_excel(output_excel, index=False, header=False)
    print(f"数据已保存至: {output_excel}")

if __name__ == "__main__":
    folder_path = 'path/to/your/docx/files'  # 替换为你的文件夹路径
    table_index = 0  # 指定你想提取的表格索引(从0开始)
    output_excel = 'output.xlsx'  # 指定输出的 Excel 文件名

    main(folder_path, table_index, output_excel)

代码说明

  1. extract_table_from_docx 函数:
  2. 此函数接受 Word 文档路径和表格索引,通过 Document 类读取文档。
  3. 检查文档中表格的数量,如果指定的表格存在,则提取该表格的内容,并返回一个列表形式的数据。

  4. main 函数:

  5. 此函数遍历指定文件夹中的所有 .docx 文件,提取每个文件中指定索引的表格数据。
  6. 所有提取的数据都存储在 all_data 列表中,并在最后将其转换为 DataFrame,然后保存为 Excel 文件。

  7. 执行部分:

  8. 设置文档保存路径、表格索引和输出 Excel 文件名,最后调用 main 函数。

总结

通过以上代码示例,我们可以轻松地批量读取 Word 文档中的特定表格,并将其保存为 Excel 文件。这种方法适用于需要处理大量文档数据的场景,可以显著提高工作效率。希望本文能够帮助你更好地掌握 Word 和 Excel 文件的自动化处理。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部