Python可自动清洗销售报表、计算提成并按部门汇总生成带格式表格:先安装Python 3.8+及pandas、openpyxl库,再批量合并Excel,清洗空值与异常数据,按文件名提取部门,分组统计金额、提成和订单数,最后用openpyxl加粗标题行。

你需要在Windows系统上自动把几十个销售报表Excel文件统一清洗、计算提成、按部门汇总并生成带格式的新表格,而不是每天花两小时手动复制粘贴。
安装Python和核心库
先确认你电脑已安装Python 3.8或更高版本:按Win+R输入cmd,回车后输入python --version,能看到类似“Python 3.11.9”的输出才算达标。
如果没装或版本太低,去python.org下载Windows installer(推荐勾选“Add Python to PATH”),一路默认安装即可。
打开命令提示符,执行这行命令安装两个关键库:
pip install pandas openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
立即学习“Python免费学习笔记(深入)”;
【必须加清华源】否则国内网络环境下极大概率超时失败,安装卡住是新手最常遇到的拦路虎。
批量读取并合并多个Excel文件
假设你所有原始报表都放在D:销售数据原始文件夹里,每个文件结构一致(都有“订单号”“金额”“日期”列)。
方法一:用pandas快速堆叠(推荐新手起步)
新建一个文本文件,改名为process_sales.py,用记事本粘贴以下代码:
import pandas as pd
import os
folder_path = r"D:销售数据原始文件"
all_data = []
for file in os.listdir(folder_path):
if file.endswith(".xlsx") and not file.startswith("~$"):
df = pd.read_excel(os.path.join(folder_path, file))
df["来源"] = file
all_data.append(df)
merged = pd.concat(all_data, ignore_index=True)
merged.to_excel(r"D:销售数据合并总表.xlsx", index=False)
保存后,双击运行这个.py文件——几秒内就生成合并总表,无需打开任何Excel程序。
方法二:用openpyxl逐单元格读取(适合要保留原始公式或复杂格式的场景)
只在需要精确控制每个单元格值时才启用,比如某些报表里B5单元格是=SUM(C2:C10)动态公式,pandas会直接读出计算结果,而openpyxl能读出公式本身。普通清洗汇总任务完全不需要它。
清洗数据并新增计算列
接着上面的merged数据框,继续追加以下三行代码:
# 删除订单号和金额为空的整行
merged = merged.dropna(subset=["订单号", "金额"])
# 过滤掉金额为0或负数的异常单
merged = merged[merged["金额"] > 0]
# 新增“提成”列,按金额8%计算
merged["提成"] = merged["金额"] * 0.08
这三步必须按顺序执行:先删空行再过滤异常值,否则dropna可能误删有效但某列为空的数据;提成计算必须放在清洗之后,不然0元单也会被算出0.0元提成,干扰后续统计。
按部门分组统计并导出带格式结果
第一步:从文件名提取部门信息
在循环读取文件时,把这行df["部门"] = file.split("部")[0] + "部"加进去,就能从“华东一部_202410.xlsx”中提取出“华东一部”。
第二步:用groupby聚合计算
stats = merged.groupby("部门").agg({"金额": "sum", "提成": "sum", "订单号": "count"}).rename(columns={"订单号": "订单数"})
第三步:用openpyxl写入并设置标题行加粗
stats.to_excel(r"D:\销售数据\部门统计.xlsx")
wb = load_workbook(r"D:\销售数据\部门统计.xlsx")
ws = wb.active
for cell in ws[1]: cell.font = Font(bold=True)
wb.save(r"D:\销售数据\部门统计.xlsx")
注意:pandas直接to_excel无法设置字体加粗,必须用openpyxl二次加工。这一步不能省,否则领导打印出来看不到加粗标题,容易漏看关键汇总行。


















