Python实用技巧:批量处理Excel数据并生成销售报表(含实战案例)
1️⃣ 摘要

每天手动处理销售Excel,统计报表、生成图表,是不是又耗时又容易出错?
本文教你用Python批量处理Excel文件:
- 自动清洗销售数据
- 生成汇总报表
- 自动绘制可视化图表
从零到有,完整实战案例演示,让你秒变办公Python高手!
2️⃣ 背景
- 手动整理Excel数据效率低、容易出错
- 公司销售数据分散在多个Excel文件
- 传统方法无法快速统计、生成报表
解决方案:用Python + pandas + matplotlib,实现自动化批量处理Excel。
3️⃣ 技术方案概览
核心流程:
┌───────────────┐
│ 多个Excel文件 │
└───────┬───────┘│
┌───────▼─────────┐
│ 数据读取 │ pandas.read_excel()
└───────┬─────────┘│
┌───────▼─────────┐
│ 数据清洗/统计 │ groupby(), sum(), sort_values()
└───────┬─────────┘│
┌───────▼─────────┐
│ 生成报表与可视化 │ to_excel(), matplotlib
└─────────────────┘
4️⃣ 核心代码示例
(1)准备实战数据
假设我们有多个Excel文件,每个文件包含销售记录,字段如下:
| Date | Salesperson | Product | Amount |
|---|---|---|---|
| 2025-11-01 | Alice | A | 1000 |
| 2025-11-01 | Bob | B | 1500 |
文件命名规则:sales_20251101.xlsx, sales_20251102.xlsx 等。
(2)批量读取Excel并合并
import pandas as pd
import glob# 获取当前目录下所有销售文件
files = glob.glob("sales_*.xlsx")# 读取并合并数据
all_data = pd.DataFrame()
for file in files:df = pd.read_excel(file)all_data = pd.concat([all_data, df], ignore_index=True)print(all_data.head())
(3)数据清洗与统计
# 去掉空行
all_data = all_data.dropna()# 按销售员统计总销售额
summary = all_data.groupby("Salesperson")["Amount"].sum().reset_index()
summary = summary.sort_values(by="Amount", ascending=False)print(summary)
输出示例:
| Salesperson | Amount |
|---|---|
| Bob | 4500 |
| Alice | 3200 |
(4)生成汇总Excel报表
summary.to_excel("sales_summary.xlsx", index=False)
print("汇总报表已生成:sales_summary.xlsx")
(5)生成可视化柱状图
import matplotlib.pyplot as pltplt.figure(figsize=(8,6))
plt.bar(summary["Salesperson"], summary["Amount"], color="skyblue")
plt.xlabel("销售员")
plt.ylabel("总销售额")
plt.title("销售统计报表")
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("sales_chart.png")
plt.show()
效果:生成一张柱状图展示每个销售员的总销售额。

5️⃣ 实战场景演示
场景:
公司销售部门每天都有多份Excel销售记录,手动汇总费时费力。
操作步骤:
-
将每日销售Excel放在同一目录
-
运行Python脚本
-
自动生成:
sales_summary.xlsx汇总报表sales_chart.png可视化柱状图
效果:
- 几行代码搞定批量处理
- 错误率大幅降低
- 每天只需几秒即可生成统计报表
6️⃣ 技术要点总结
| 模块 | 技术栈 |
|---|---|
| Excel批量处理 | pandas + glob |
| 数据清洗/统计 | pandas |
| 报表生成 | to_excel() |
| 可视化图表 | matplotlib |
| 自动化流程 | Python脚本一次运行完成任务 |
7️⃣ 结语 & 互动引导
Python不仅是开发工具,也是办公自动化利器!
如果你也有重复整理Excel报表的工作,不妨试试这个脚本。
💬 你平时最想自动化处理哪类Excel数据?欢迎在评论区分享经验!
好的,我们来加一个进阶功能章节
8 进阶功能:自动对比、生成PDF和多图表展示
(1)自动对比不同日期销售额
如果你希望看到每位销售员在不同日期的销售额对比,可以使用 pivot_table:
# 按日期和销售员汇总销售额
pivot = all_data.pivot_table(index="Date",columns="Salesperson",values="Amount",aggfunc="sum"
).fillna(0)print(pivot)
输出示例:
| Date | Alice | Bob |
|---|---|---|
| 2025-11-01 | 1000 | 1500 |
| 2025-11-02 | 1200 | 1800 |
(2)生成折线图对比销售趋势
plt.figure(figsize=(10,6))
for col in pivot.columns:plt.plot(pivot.index, pivot[col], marker='o', label=col)plt.xlabel("日期")
plt.ylabel("销售额")
plt.title("销售趋势对比")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.savefig("sales_trend.png")
plt.show()
效果:可以清晰看到每位销售员每日销售额变化趋势。
(3)生成饼图展示总销售占比
plt.figure(figsize=(6,6))
plt.pie(summary["Amount"], labels=summary["Salesperson"], autopct="%1.1f%%", startangle=90)
plt.title("销售占比")
plt.savefig("sales_pie.png")
plt.show()
效果:展示每位销售员在总销售中的占比,适合做月度汇报。
(4)导出PDF报表(含表格+图表)
可以用 fpdf 或 reportlab 将统计结果和图表生成PDF报表:
from fpdf import FPDFpdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", 'B', 16)
pdf.cell(0, 10, "销售统计报表", ln=True, align='C')# 添加表格
pdf.set_font("Arial", '', 12)
for i, row in summary.iterrows():pdf.cell(0, 10, f"{row['Salesperson']}: {row['Amount']}", ln=True)# 添加图表
pdf.image("sales_chart.png", x=10, y=60, w=180)pdf.output("sales_report.pdf")
print("PDF报表已生成:sales_report.pdf")
效果:生成完整PDF报表,包含表格和柱状图,一键即可发给领导或团队。
5 进阶功能总结
| 功能模块 | 技术点 | 优势 |
|---|---|---|
| 销售趋势对比 | pivot_table + 折线图 | 可快速看到每日变化趋势 |
| 销售占比分析 | 饼图 | 可视化月度或季度占比 |
| PDF报表生成 | fpdf / reportlab | 自动生成汇报文件,无需手动整理 |
6 进阶实战场景演示
-
每天将销售Excel放到目录
-
运行Python脚本
-
自动生成:
- 汇总Excel报表(
sales_summary.xlsx) - 可视化图表(柱状图、折线图、饼图)
- PDF报表(含表格和图表)
- 汇总Excel报表(
✅ 整个流程自动化,无需人工操作,效率大幅提升。
7️⃣ 结语
Python不仅能帮你自动化日常数据处理,还能直接生成汇报文件,让办公效率翻倍!
💬 你平时在工作中最希望自动化处理的报表是什么?欢迎在评论区分享你的需求,我可以帮你写脚本模板!
