利用python批量遍历多个Excel表格文件中指定内容并汇总

工作中的一个问题,有一个文件夹,存在多个子文件夹,每个文件夹中还有多个Excel表格文件,每个表格文件还有多个sheet,需要从每个sheet中读取多个指定单元格的内容并汇总到一个表格中。上网搜索一下,利用Python的pandas模块可以快速实现。openpyxl也可以,不过为了快速,优先采用了能快速搜到使用pandas模块的成形代码。

简单修改别人代码,实现如下。

import os
import pandas as pd

# 要读取表格文件的目录
or_path = "D:/xlsx"
# 读取结果保存目录
re_path = "D:/results"

result_df = pd.DataFrame()

# 因为这个例子里,Excel文件独立在不同文件夹中,所以需要遍历所有子目录
for root, dirs, files in os.walk(or_path):
    for file in files:
        # 只处理指定文件
        if !file.endswith(".xlsx"):
            continue

        read_xls = pd.ExcelFile(os.path.join(root, file))

        # 例子中,每个文件有多个sheet,需要遍历每个sheet
        for sheetname in read_xls.sheet_name:
            # 通过sheet名字读取表格内容
            df = read_xls.parse(sheetname, header=None)
            # 通过values函数可以读取单元格内容
            # 通过Data函数可以构建表格
            read_df = pd.Data({'name':[df.values[2, 1]], 'age':[df.values[3, 1]]})

            # 拼接表格
            result_df = pd.concat([result_df, read_df])

# 输出汇总到文件
result_df.to_csv(os.path.join(re_path, "result.csv"), index = false)

代码不长,却能实现很多功能,包括遍历搜索多个子文件夹、遍历文件中每个sheet表格,把文件夹名称和sheet名写入文件也很容易实现,经测试没有问题。

批量提取Excel文件中的特定单元格数据汇总到一个新的Excel文件中,可以使用Python的pandas库结合os模块来实现,因为pandas非常适合处理表格数据。首先,你需要安装`openpyxl`和`pandas`库,如果还没有的话: ```bash pip install pandas openpyxl ``` 下面是一个简单的步骤描述和bat批处理文件示例: 1. 创建一个Python脚本,比如叫`extract_data.py`,内容如下: ```python import os import pandas as pd # 定义输入文件夹路径、需要提取的列名和目标行数(如果有) input_folder = "path_to_your_input_folder" column_name = 'A1:C1' # 示例,替换为你需要的单元格范围 output_file = 'output.xlsx' def extract_data(file_path): df = pd.read_excel(file_path) data = df.eval(column_name) # 提取数据 return data # 遍历文件夹,提取每个Excel文件内容 data_list = [] for filename in os.listdir(input_folder): if filename.endswith('.xlsx'): file_path = os.path.join(input_folder, filename) extracted_data = extract_data(file_path) data_list.append(extracted_data) # 汇总所有数据到一个DataFrame total_data = pd.concat(data_list, ignore_index=True) # 写入新的Excel文件 total_data.to_excel(output_file, index=False) print(f"数据已成功写入{output_file}") ``` 将上述代码保存后,记得将`path_to_your_input_folder`替换为实际的文件夹路径。 2. 创建一个bat批处理文件(假设名为`batch_extract.bat`),用于调用Python脚本: ```bat @echo off setlocal enabledelayedexpansion set INPUT_FOLDER=C:\Your\Input\Folder set OUTPUT_FILE=C:\Your\Output\ExtractedData.xlsx python %~dp0extract_data.py %INPUT_FOLDER% %OUTPUT_FILE% pause ``` 这里也请替换`C:\Your\Input\Folder`和`C:\Your\Output\ExtractedData.xlsx`为你所需的输入和输出文件位置。 运行这个bat文件,它会提取指定Excel文件汇总结果到一个新的Excel文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值