You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python读取并合并多个Excel文件中的指定行至单个文件

Excel文件汇总解决方案

需求说明

我有多个Excel文件,每个文件的Summary工作表中存在一行A列值为Orange的数据,需要将所有文件的这一行数据提取出来,合并成一个新的Excel文件:每个源文件的对应数据作为新文件的一列,列名使用源文件所在的文件夹名称。

原代码问题分析

你提供的代码存在以下几个关键问题:

  • 初始df_report仅读取第一行,未正确筛选Orange对应的行
  • 直接通过索引df_report[i]添加列的方式不符合pandas语法
  • 未正确提取目标行,错误地操作了行索引而非按值筛选
  • 缺少PATH和result_file_path的定义,会导致运行报错

修正后的代码

import os
import pandas as pd

def excel_summary_gen():
    # 配置参数
    extension = '.xlsx'
    PATH = '你的目标目录路径'  # 替换成你要遍历的根目录
    result_file_path = '汇总结果.xlsx'  # 汇总文件保存路径
    
    # 初始化汇总DataFrame
    df_report = pd.DataFrame()
    
    # 遍历目录下所有符合条件的文件
    for root, dirs_list, files_list in os.walk(PATH):
        for file_name in files_list:
            # 筛选含flatReport的xlsx文件
            if os.path.splitext(file_name)[-1] == extension and 'flatReport' in file_name:
                file_path = os.path.join(root, file_name)
                folder_name = os.path.basename(root)  # 获取文件所在文件夹名称
                
                # 读取Summary工作表,筛选A列值为Orange的行
                df_r = pd.read_excel(file_path, sheet_name='Summary')
                # 找到A列(取工作表第一列,若有明确列名可替换为实际列名)
                target_row = df_r[df_r.iloc[:, 0] == 'Orange']
                
                # 如果找到目标行,转置为列并添加到汇总表
                if not target_row.empty:
                    # 转置行成为列,设置列名为文件夹名称
                    target_col = target_row.T
                    target_col.columns = [folder_name]
                    # 合并到汇总表
                    df_report = pd.concat([df_report, target_col], axis=1)
    
    # 保存汇总文件
    df_report.to_excel(result_file_path, index=True)
    print("汇总完成,文件已保存至:", result_file_path)

# 调用函数
excel_summary_gen()

注意事项

  1. 替换代码中的PATH为你实际要遍历的根目录路径
  2. 如果你的Excel文件中A列有明确列名(比如不是Unnamed:0),可以把df_r.iloc[:, 0]替换成实际列名,例如df_r['类别'] == 'Orange'
  3. 确保所有目标文件的Summary工作表中都存在A列值为Orange的行,否则该文件的数据会被跳过

内容的提问来源于stack exchange,提问作者user2077648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:36:23