当前位置:首页>python>【Python】如何使用Python将数百个Excel汇总统计

【Python】如何使用Python将数百个Excel汇总统计

  • 2026-08-26 16:16:20
【Python】如何使用Python将数百个Excel汇总统计

在政务、企业管理等日常工作中,向几十甚至上百个下属单位收集报表是高频场景,而后续的报表合并、数据汇总、统计分析更是典型的 “繁琐重活”:人工核对格式、逐表复制粘贴、手动计算汇总,不仅耗时数小时甚至数天,还极易因表格格式差异、数据录入错误出现纰漏。

而借助 Python,只需编写一次通用脚本,就能在几分钟内自动完成全流程处理—— 不管是几十份还是上百份报表,都能批量读取、统一格式、精准合并、自动统计,既大幅节省人力成本,又能杜绝人工操作的误差。下面结合实际工作案例,详细介绍如何用 Python 实现报表的批量合并与汇总统计。

一、核心准备工作 
1. 安装依赖库:首先在终端执行以下命令安装所需工具(pandas处理Excel和数据,openpyxl支持.xlsx格式):
pip install pandas openpyxl
2. 文件整理:将所有需要汇总的Excel文件放到同一个文件夹(比如命名为excel_data),确保所有文件的核心列名一致(比如都有「日期」「部门」「金额」「销量」等列)。
二、完整汇总统计代码(开箱即用) 
这个代码包含:批量读取文件、数据合并、基础统计(求和/计数/均值)、异常处理(跳过损坏文件)、结果导出。
import osimport pandas as pd# -------------------------- 配置参数(根据你的需求改) --------------------------EXCEL_FOLDER = "./excel_data"  # Excel文件所在文件夹路径OUTPUT_MERGE = "合并总表.xlsx"  # 所有数据合并后的总表文件名OUTPUT_STAT = "汇总统计结果.xlsx"  # 统计结果文件名# 需要统计的列和统计方式(键=列名,值=统计方法,支持sum/count/mean/max/min等)STAT_CONFIG = {    "金额": ["sum", "mean"],  # 金额求和、求平均值    "销量": ["sum", "count"],  # 销量求和、统计记录数    "利润": ["sum", "max"]     # 利润求和、求最大值}GROUP_BY_COL = "部门"  # 按哪个列分组统计(比如按部门、按日期)# -------------------------- 核心逻辑:批量读取+合并数据 --------------------------def batch_read_excel(folder_path):    """批量读取文件夹中的Excel文件,返回合并后的DataFrame"""    all_data = []    # 遍历文件夹中的所有文件    for file_name in os.listdir(folder_path):        # 只处理.xlsx和.xls文件        if not file_name.endswith((".xlsx", ".xls")):            continue        file_path = os.path.join(folder_path, file_name)        try:            # 读取Excel文件(默认读取第一个工作表)            df = pd.read_excel(                file_path,                engine="openpyxl" if file_name.endswith(".xlsx") else "xlrd"            )            # 新增一列标记数据来源,方便溯源            df["数据来源文件"] = file_name            all_data.append(df)            print(f"✅ 成功读取:{file_name}")        except Exception as e:            # 跳过损坏或读取失败的文件,打印错误信息            print(f"❌ 读取失败 {file_name}:{str(e)}")            continue    # 合并所有数据,忽略行索引    if all_data:        merged_df = pd.concat(all_data, ignore_index=True)        print(f"\n📊 共读取 {len(all_data)} 个Excel文件,总记录数:{len(merged_df)}")        return merged_df    else:        print("⚠️ 未找到有效Excel文件!")        return pd.DataFrame()# -------------------------- 核心逻辑:汇总统计 --------------------------def stat_merged_data(merged_df, group_col, stat_config):    """对合并后的数据按指定列分组统计"""    # 按分组列聚合,执行指定的统计方法    stat_df = merged_df.groupby(group_col).agg(stat_config).reset_index()    # 简化列名(比如把("金额", "sum")改成"金额_总和")    stat_df.columns = [        group_col if col[0] == group_col else f"{col[0]}_{col[1]}"        for col in stat_df.columns    ]    return stat_df# -------------------------- 主程序执行 --------------------------if __name__ == "__main__":    # 1. 批量读取并合并数据    merged_data = batch_read_excel(EXCEL_FOLDER)    if not merged_data.empty:        # 2. 导出合并后的总表        merged_data.to_excel(OUTPUT_MERGE, index=False)        print(f"\n📝 合并总表已保存:{OUTPUT_MERGE}")        # 3. 执行汇总统计        stat_data = stat_merged_data(merged_data, GROUP_BY_COL, STAT_CONFIG)        # 4. 导出统计结果        stat_data.to_excel(OUTPUT_STAT, index=False)        print(f"📈 统计结果已保存:{OUTPUT_STAT}")        # 可选:打印前5行统计结果预览        print("\n🔍 统计结果预览:")        print(stat_data.head())
三、代码关键部分解释 
1. 配置参数区:你只需要改这里的参数,不用动核心逻辑:    
EXCEL_FOLDER:改成你的Excel文件夹路径(比如Windows路径C:/Users/xxx/Desktop/excel_data);    
STAT_CONFIG:自定义要统计的列和方法(比如想统计「人数」的计数,就加"人数": ["count"]);    
GROUP_BY_COL:想按日期统计就改成"日期",想按区域统计就改成"区域"。  
2. 异常处理:代码中用try-except包裹了文件读取逻辑,即使某个Excel文件损坏/格式错误,也不会中断程序,只会跳过并提示错误。  
3. 数据溯源:自动新增「数据来源文件」列,方便你后续核对某条数据来自哪个Excel文件。  
四、使用示例(输入输出)
假设你的Excel文件都是这样的结构:  
部门
日期
金额
销量
利润
销售部
2026-02-01
1000
5
200
技术部
2026-02-01
800
3
150
运行代码后: 
合并总表.xlsx:包含所有Excel文件的所有行,新增「数据来源文件」列; 
汇总统计结果.xlsx:按「部门」分组的统计结果,比如:  
部门 
金额_sum
金额_mean
销量_sum
销量_count
利润_sum
利润_max
销售部
50000
1250 
200
40
10000
500
技术部
30000
1000
150 
30
6000
400
五、进阶适配(如果你的场景特殊) 
1. Excel有多个工作表:修改pd.read_excel时指定sheet_name="工作表名"(比如sheet_name="销售数据"); 
2. 只汇总部分列:合并后添加merged_data = merged_data[["部门", "金额", "销量", "数据来源文件"]]筛选列; 
3. 按多列分组统计:把GROUP_BY_COL改成列表,比如GROUP_BY_COL = ["部门", "日期"]。  
总结 
1. 核心流程:整理文件→配置参数→运行代码,三步即可完成数百个Excel的汇总统计,无需手动逐个处理; 
2. 代码特性:自带异常处理、数据溯源、灵活配置统计规则,适配新手和批量处理场景; 
3. 输出结果:同时生成「合并总表」(保留所有原始数据)和「统计结果表」(直接看汇总数据),兼顾溯源和分析需求。  
文章仅供参考,需了解详细内容请关注公众号,可交流互动,互相学习,共同提高!
请扫描下面二维码关注公众号,后续内容更精彩!

最新文章

随机文章