又是月底,财务部的张姐发来5个部门的销售数据Excel,让你汇总成一份报表。你熟练地打开第一个文件,复制粘贴,调整格式,核对数据……半小时过去,才搞完一个部门。
抬眼一看表,下午4点。剩下的4个文件,今晚又要加班了吧?
别急,今天教你用Python写个脚本,5分钟搞定这些重复劳动。我上周刚用这个办法,把每月一次的报表工作从3小时压缩到10分钟,准时下班的感觉真好。
首先得装个库,叫pandas,专门处理表格数据。如果你还没装,打开命令行(Win用户搜cmd,Mac搜终端),输入:
pip install pandas openpyxl
等它安装完,咱们就开始写代码。新建一个.py文件,或者直接用Jupyter Notebook都行。
第一步:把5个部门的Excel读进来
import pandas as pd
import os
# 假设5个文件都在当前目录的"销售数据"文件夹里
folder_path = "销售数据"
all_data = []
# 遍历文件夹里所有Excel文件
for file in os.listdir(folder_path):
if file.endswith(".xlsx"):
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
all_data.append(df)
print(f"成功读取了{len(all_data)}个文件")
这里用了个循环,自动把文件夹里所有.xlsx文件都读进来。你不用一个个打开复制了。
第二步:合并数据
# 把所有表格上下拼接起来
merged_data = pd.concat(all_data, ignore_index=True)
# 看看合并后的数据长啥样
print(merged_data.head())
print(f"总共有{len(merged_data)}行数据")
第三步:按产品类别汇总销售额
假设每个Excel里都有"产品类别"和"销售额"两列。咱们要统计每个类别卖了多少:
# 按产品类别分组,计算销售额总和
summary = merged_data.groupby("产品类别")["销售额"].sum().reset_index()
# 按销售额从高到低排序
summary = summary.sort_values(by="销售额", ascending=False)
print(summary)
第四步:保存到新Excel
# 保存结果
output_path = "月度销售汇总.xlsx"
summary.to_excel(output_path, index=False)
print(f"报表已生成:{output_path}")
搞定!完整的脚本一共不到20行。下次张姐再发文件,你只需要:
- 把她的Excel拖到"销售数据"文件夹
- 运行这个脚本
- 喝口水的功夫,汇总报表就生成了
几个你可能遇到的问题:
1. 如果Excel列名不一样,比如有的叫"产品分类",有的叫"产品类别",可以在读取时统一重命名。
2. 如果想按部门分别汇总,可以在合并前给每个数据框加一列"部门",记录来自哪个文件。
3. 这个脚本每月都能用,你甚至可以设置成每天自动运行,邮箱收件附件自动处理。
我知道,第一次写可能会遇到报错。别慌,把错误信息复制到百度或者ChatGPT里,一般都能找到答案。我刚开始也是这么过来的,现在办公室里的人都叫我"Excel终结者"。
Python在办公自动化上的威力远不止这些。下次咱们聊聊怎么自动从几百个Word合同里提取关键信息,或者怎么定时发邮件——都是实际工作中高频的痛点。
如果你今天就想试试,可以从这里下载我准备好的示例数据和完整代码。有疑问随时在评论区留言,我看到都会回复。
祝你今天准时下班!