Excel 30天极速自救指南 | Day 10:再也不怕领导改需求!Python自动化刷新报表
- 2026-11-08 19:32:40
“领导的需求就像六月的天气——说变就变。昨天要按省份,今天要按产品,明天可能要按星座。”

领导改需求
大家好,我是你们那位“领导改需求的速度,赶不上我改脚本的速度”的博主。
今天是我们30天自救计划的第十天,也是Python周的第三课。
前两天,我们见识了Python的威力,学会了如何给AI下指令。你已经能写出简单的Python脚本,处理Excel数据了。
但是,有一个职场难题,依然困扰着无数打工人——
领导总改需求!
周一:“给我做个销售报表,按省份统计” 周二:“哎,还是按产品类别吧,省份先不要了” 周三:“等等,把时间和省份结合起来,做个透视” 周四:“再加个环比增长率吧,顺便把图表也做了”
以前的你: 每次改需求,重新打开Excel,重新拉透视表,重新调格式,重新做图表……一整天没了。
现在的你: 写一个Python脚本,领导改一次需求,你改一行代码,3秒重新出报表。领导还没说完,你已经把新报表发过去了。
今天,就教你打造这个 “抗领导折腾”的自动化报表系统。
场景导入:那个被领导折腾的下午
假设你是某公司的销售数据分析师。每周一,你都要出一份《上周销售业绩简报》。
第一周:
领导说:“给我看看每个省份的销售额,按从高到低排。”
你打开Excel,拉透视表,排序,复制到新表,美化,保存,发邮件。耗时40分钟。
第二周:
领导说:“上次那个不错,但这周我想看每个产品类别的销售额,加上占比。”
你又打开Excel,重新拉透视表,重新算占比,重新美化,保存,发邮件。耗时40分钟。
第三周:
领导说:“哎,还是把省份和产品结合起来吧,做个二维表,看看哪个省份哪个产品卖得好。”
你已经开始怀疑人生了。
【截图位置:一个崩溃的打工人表情包,配文“领导又改需求了”】
解决方案:写一个“万能报表脚本”

一行代码搞定 一行代码搞定
今天,我们要写一个Python脚本,让它:
- 自动读取原始数据
(不管数据怎么更新) - 按指定的维度统计
(省份、产品、时间……改一行代码就行) - 自动生成图表
(柱状图、饼图、折线图,随你挑) - 保存成带格式的Excel报表
(连美化都自动了) - 甚至可以自动发邮件
(今天先不讲,明天Day 11会教)
最关键的是:领导改需求,你只需要改脚本里的两三行“配置”,然后双击运行,新报表就出来了。
️ 第一步:搭建报表脚本框架
打开ChatGPT,输入以下指令(用昨天学的“五要素模板”):
“我是一个Python初学者。我有一个Excel文件叫‘销售数据.xlsx’,里面有四列:‘日期’、‘省份’、‘产品类别’、‘销售额’。我想写一个Python脚本,实现以下功能:
读取这个Excel文件
按指定的列进行分组统计(比如按‘省份’分组,对‘销售额’求和)
按销售额从高到低排序
生成一个柱状图并保存为图片
把统计结果和图表保存到一个新的Excel文件里
请把‘按什么分组’设计成一个变量,放在脚本开头,这样我下次改需求时只需要改这一行。给我完整的代码,每行加注释,并告诉我怎么运行。”
AI会给你类似这样的代码:
python
import pandas as pd
import matplotlib.pyplot as plt
# ========== 这里是“配置区”——改需求时只改这里!==========
分组列 = '省份'# 可以改成 '产品类别' 或 '日期'
统计列 = '销售额'
统计方式 = 'sum'# sum, mean, count 等
图表标题 = f'各{分组列}销售额分布'
输出文件名 = f'销售报表_{分组列}.xlsx'
# ====================================================
# 1. 读取数据
print("正在读取数据...")
df = pd.read_excel('销售数据.xlsx')
# 2. 按指定列分组统计
print(f"正在按 {分组列} 进行统计...")
result = df.groupby(分组列)[统计列].agg(统计方式).reset_index()
result = result.sort_values(统计列, ascending=False)
# 3. 生成图表
print("正在生成图表...")
plt.figure(figsize=(10, 6))
plt.bar(result[分组列], result[统计列])
plt.title(图表标题)
plt.xlabel(分组列)
plt.ylabel(统计列)
plt.xticks(rotation=45)
plt.tight_layout()
图表文件名 = f'图表_{分组列}.png'
plt.savefig(图表文件名)
plt.show()
# 4. 保存结果到Excel
print("正在保存结果...")
with pd.ExcelWriter(输出文件名, engine='openpyxl') as writer:
result.to_excel(writer, sheet_name='统计结果', index=False)
# 如果想在Excel里也插入图表,需要更复杂的操作
# 这里简单起见,我们只保存数据,图表单独保存文件
print(f"完成!报表已保存为:{输出文件名}")
print(f"图表已保存为:{图表文件名}")【截图位置:代码编辑器里显示这段代码,高亮标出“配置区”】
第二步:运行脚本,见证奇迹
把上面的代码复制到一个新建的 .py 文件(比如 baobiao.py) 确保 销售数据.xlsx 和这个py文件在同一个文件夹 打开命令提示符,运行 python baobiao.py
3秒后,你得到:
一个Excel文件:销售报表_省份.xlsx,里面有按省份统计好的数据 一个图片文件:图表_省份.png,漂亮的柱状图
【截图位置:生成的Excel文件和图表图片】
第三步:领导改需求,你改一行
场景1: 领导说:“哎,我不想看省份了,我想看产品类别。”
你打开 baobiao.py,找到配置区,把这一行:
python
分组列 = '省份'改成:
python
分组列 = '产品类别'保存,双击运行。3秒后,新报表出来了。

领导还没说完,报表已发
【截图位置:修改代码的对比图】
场景2: 领导说:“我不想看总和,我想看平均值。”
你修改配置区:
python
统计方式 = 'mean'# mean是平均值运行,搞定。
场景3: 领导说:“我想看每个省份的销售额,但还要看订单数量。”
这个稍微复杂一点,需要改一下代码。但你可以让AI帮你改:
“我现在是按‘省份’分组对‘销售额’求和,但我想同时统计每个省份的订单数量(行数),怎么改代码?”
AI会给你新的代码,你复制替换就行。
进阶:自动生成多维度报表
如果领导经常同时要多个维度的数据,我们可以让脚本一次生成多个报表:
python
# 配置多个分组维度
分组列表 = ['省份', '产品类别', '日期']
for 分组列 in 分组列表:
print(f"正在生成按 {分组列} 的报表...")
# 里面的统计代码和上面一样
# 只是把输出文件名改成包含分组列的名字这样运行一次,所有维度的报表都出来了。领导要啥你有啥。
让AI帮你定制
每个人的数据不一样,需求也不一样。你可以用今天学的思路,让AI帮你定制专属的“报表自动化脚本”。
万能提问模板:
“我有一个Excel文件叫‘[文件名]’,里面有这些列:[列名列表]。我想写一个Python脚本,实现自动化报表:
我希望把【分组维度】和【统计方式】设计成变量,放在脚本开头方便修改
需要生成统计表格和对应的图表
结果保存到新的Excel文件
请给我完整代码,每行加注释”
今日“捣乱作业”
作业题目:
照着今天的教程,打造你自己的“自动化报表脚本”。
操作步骤:
准备一份你的数据(可以是真实工作数据,也可以自己造一份测试数据) 用AI生成脚本(复制上面的模板) 运行脚本,看能不能成功 修改分组维度(比如从“省份”改成“产品类别”),再次运行 截图两次运行的结果(两张不同的报表),发评论区
挑战版:
让AI帮你增加一个功能——自动把生成的报表通过邮件发送给老板(提示:可以用 yagmail 或 smtplib 库)。然后截图邮件发送成功界面。
今日金句
“领导的需求千变万化,你的脚本以不变应万变。”
博主碎碎念
今天你学会了如何打造一个“抗领导折腾”的自动化报表系统。
从今天起,领导改需求不再是噩梦,而是你表演的机会:
领导说“改按产品看”,你3秒出结果 领导说“再加个环比”,你5分钟改好脚本 领导说“你怎么这么快”,你微微一笑:“我提前写好了自动化脚本”
明天Day 11,我们会学一个更刺激的:《我和我的那些“一次性”朋友——用Python发邮件》。教你如何让Python自动发邮件、发报表、发工资条,彻底告别手动发送的繁琐。
到时候你会发现,连“发送”这个动作,都可以交给Python。
评论区交给你:
你的领导最爱改什么需求?说出来让大家一起吐槽!
点击关注,每天学一招,让Python给你打工!
#Python教学 #报表自动化 #告别手动 #领导克星 #效率神器
P.S. 今天的作业如果成功了,以后每周一早上,双击一下脚本,报表自动生成。你可以悠哉地喝咖啡,等领导来夸你“效率高”。