【python】批量读取Word文档中的特定表格并保存为Excel文件

批量读取Word文档中的特定表格并保存为Excel文件

在工作中,我们常常需要从多个Word文档中提取数据,然后将这些数据汇总到一个Excel文件中进行分析。下面,我将分享一个Python脚本,它可以从多个Word文档中读取特定的表格数据,并将这些数据保存到一个Excel文件中。

代码实现

我们首先导入所需的库:

import os
import re
import pandas as pd
from docx import Document

然后,我们定义一个函数来从Word文档中读取特定表格并转换为DataFrame:【python】批量读取Word文档中的特定表格并保存为Excel文件_第1张图片
这是此次的文件内容,我们想读取表格中的内容。如:第二个表格中总分的均分项,我们要定义相关参数(函数内部已说明。)

# 从Word文档中读取特定表格并转换为DataFrame
def read_table_from_word(document, table_index, rows, cols):
   """
    从指定的Word文档中的指定单元格提取数据

    参数:
    doc: Document对象,代表一个Word文档
    table_index: int,要读取的表格索引
    rows: list,要读取的行索引
    cols: list,要读取的列索引

    返回值:
    data: list,提取的数据
    """
    table = document.tables[table_index]
    data = [
        [table.cell(row_idx, col_idx).text for col_idx in cols]
        for row_idx in rows if row_idx < len(table.rows)
    ]      
    return data

接下来是主函数,用于批量读取特定模式的Word文档中的表格数据(如下):
【python】批量读取Word文档中的特定表格并保存为Excel文件_第2张图片

# 主函数,批量读取特定模式的Word文档中的表格数据
def read_every_word_file(folder_path, keyword, start_num, end_num, table_index, rows, cols):
    """
    读取文件夹中包含特定关键字的所有Word文件,并提取指定表格中的数据

    参数:
    folder_path: str,文件夹路径
    keyword: str,文件名中包含的关键字,示例中我使用:SCL90
    table_index: int,要读取的表格索引
    rows: list,要读取的行索引
    cols: list,要读取的列索引

    返回值:
    all_data: list,所有Word文件中提取的数据
    """
    # 获取文件夹中的所有文件名
    files = os.listdir(folder_path)
    
    # 过滤文件名,筛选出包含关键字的文件
    files_with_keyword

你可能感兴趣的:(python,python,word,excel)