乐于分享
好东西不私藏

Excel 30天极速自救指南 | Day 14:实战——把100个Excel合成1个,原来只要10行代码?

Excel 30天极速自救指南 | Day 14:实战——把100个Excel合成1个,原来只要10行代码?

“每个月都要合并各分店的销售报表?打开-复制-粘贴-关闭……循环100次,比念经还枯燥。”

大家好,我是你们那位“能用代码合并表格,绝不手动复制粘贴”的博主。

恭喜你!我们已经走完了前两周的自救之旅。从Excel小白到能指挥Python干活,你已经掌握了:

  • 用AI写公式、录宏、条件格式
  • 用Python处理大数据、自动报表、发邮件、批量处理文件

但我知道,你的日常工作中还有一个顽固的敌人没解决——

合并多个Excel文件!

每个月/每周,你都要收集各个部门/分店的报表,然后手动打开一个一个复制粘贴到总表里。一个两个还好,如果是几十上百个文件,那就是体力活

今天,我们就用10行Python代码,彻底终结这个噩梦。


场景导入:那个被100个Excel逼疯的周一

假设你是某公司的销售助理。每周一,全国100家分店都会发来各自的销售报表,文件名像这样:

text

北京店_销售周报.xlsx
上海店_销售周报.xlsx
广州店_销售周报.xlsx
深圳店_销售周报.xlsx
……

每个文件的格式都一样,都有这几列:日期、商品、销售额。你的任务是把这100个文件合并成一张总表,然后交给老板。

以前的你:

  1. 打开北京店文件,Ctrl+A全选,Ctrl+C复制
  2. 切换到总表,Ctrl+V粘贴
  3. 打开上海店文件,Ctrl+A全选,Ctrl+C复制
  4. 切换到总表,找到最后一行,Ctrl+V粘贴
  5. 重复100遍……

两三个小时后,你腰酸背痛、眼冒金星,还担心有没有漏掉某个店。

100个Excel文件围攻

现在的你:
写一个10行Python脚本,双击运行,3秒后所有数据合并完成。你端着咖啡,看着屏幕上一行行“正在处理xx店”,感觉自己像个黑客。


10行代码合并100个Excel

打开ChatGPT,输入:

“我是一个Python初学者。我有一个文件夹,里面有100个Excel文件,都是.xlsx格式,都有相同的列:‘日期’、‘商品’、‘销售额’。我想把这些文件全部合并成一个总表,保存为‘合并总表.xlsx’。请帮我写一个Python脚本,用pandas,每行加注释,并告诉我怎么运行。”

AI会给你类似这样的代码(我来帮你精简一下,真的只有10行核心代码):

python

import pandas as pd
import glob

# ========== 配置区 ==========
文件夹路径 = '分店报表'# 存放所有Excel文件的文件夹
输出文件名 = '合并总表.xlsx'# 合并后的文件名
# ============================

# 获取文件夹下所有Excel文件
所有文件 = glob.glob(f'{文件夹路径}/*.xlsx')

# 读取所有文件并合并
总表 = pd.DataFrame()  # 创建一个空DataFrame
for 文件路径 in 所有文件:
    df = pd.read_excel(文件路径)  # 读取一个文件
    总表 = pd.concat([总表, df], ignore_index=True)  # 合并

# 保存合并后的表
总表.to_excel(输出文件名, index=False)
print(f'✨ 合并完成!共合并 {len(所有文件)} 个文件,总行数:{len(总表)}')

【截图位置:代码编辑器里显示这段代码,高亮配置区和循环部分】

10行代码奥特曼登场

没错,就这么几行!让我们逐行解释一下:

  1. import pandas as pd:导入pandas库,给它起个小名叫pd
  2. import glob:导入glob库,用来找文件
  3. 文件夹路径 = ‘分店报表’:你的Excel文件放在哪个文件夹里(和脚本同目录下)
  4. 所有文件 = glob.glob(f'{文件夹路径}/*.xlsx’):用glob找到文件夹下所有.xlsx文件,返回一个列表
  5. 总表 = pd.DataFrame():创建一个空的DataFrame,准备装合并后的数据
  6. for 文件路径 in 所有文件::循环处理每一个文件
  7. df = pd.read_excel(文件路径):用pandas读取这个Excel文件
  8. 总表 = pd.concat([总表, df], ignore_index=True):把刚读取的数据加到总表里,ignore_index=True让索引重新编号
  9. 总表.to_excel(输出文件名, index=False):把合并后的总表保存成Excel文件,不要保存索引列
  10. print(…):打印完成信息

运行步骤

  1. 创建文件夹
    :在电脑上新建一个文件夹,比如叫 分店报表
  2. 放入文件
    :把所有要合并的Excel文件放进去(可以先用几个测试文件试试)
  3. 保存脚本
    :把上面的代码复制到一个新建的.py文件里,比如 合并报表.py,放到同一个文件夹外面(或者里面都可以,但路径要对)
  4. 修改路径
    :如果脚本和文件夹在同一级,文件夹路径直接写文件夹名;如果在不同目录,需要写完整路径
  5. 运行
    :打开命令提示符,切换到脚本所在目录,输入 python 合并报表.py

几秒钟后,你会看到当前目录下生成了一个 合并总表.xlsx,打开看看,是不是所有数据都整整齐齐在一起了?

【截图位置:命令提示符显示运行过程,最后显示合并完成;Excel打开显示合并后的总表】


测试:自己造几个文件试试

如果你没有现成的100个文件,可以自己造几个测试文件:

  1. 打开Excel,随便写几行数据(比如日期、商品、销售额)
  2. 另存为 测试1.xlsx
  3. 修改一下数据,另存为 测试2.xlsx
  4. 再做一个 测试3.xlsx
  5. 把这3个文件放进 测试报表 文件夹
  6. 运行脚本,看看能不能合并成功

进阶:处理更多复杂情况

上面的脚本是最简单的版本。实际工作中可能会遇到各种情况,你可以让AI帮你升级:

1. 文件里多了一个“备注”列,有些文件有,有些没有?

告诉AI:“有的文件多了一列,我想只保留共有的列,或者统一列顺序。” AI会给你加上列对齐的逻辑。

2. 想知道每个数据来自哪个文件?

告诉AI:“合并时增加一列‘分店’,用文件名作为值(去掉.xlsx后缀)。” AI会给你加一行代码提取文件名。

python

df['分店'] = 文件名.replace('.xlsx''')

3. 文件在不同的子文件夹里?

告诉AI:“文件在多个子文件夹里,要递归查找。” AI会教你用 **/*.xlsx 加上 recursive=True。

4. 只合并某个日期之后的数据?

告诉AI:“读取每个文件后,只保留日期大于2026-01-01的行再合并。” AI会在循环里加筛选条件。


今日“捣乱作业”

作业题目:
亲手实现“100个Excel合并”脚本,并用至少3个测试文件验证。

操作步骤:

  1. 创建至少3个Excel文件(可以简单复制粘贴几行数据)
  2. 把这些文件放到一个文件夹里
  3. 复制今天的脚本,修改文件夹路径
  4. 运行脚本
  5. 截图运行结果(命令提示符界面 + 合并后的Excel文件截图)
  6. 发评论区

挑战版:
让AI帮你增加一个功能——合并时在总表里添加一列“来源文件名”,并截图结果。


今日金句

“以前合并表格是体力活,现在合并表格是双击鼠标。”


博主碎碎念

今天你学会了用10行代码合并100个Excel文件。这个脚本是你以后工作中最常用的神器之一

保存好这个脚本,以后遇到任何需要合并文件的场景,拿出来改改路径就能用。甚至可以让AI帮你把它包装成一个带界面的小工具,双击就能选文件夹、选文件类型,连代码都不用改。

明天Day 15,我们将进入第三周的正式课程:《Excel有眼睛了!用AI分析图表,比老板看得还透》。教你用AI自动分析图表数据,生成洞察报告,让你在汇报时显得特别有思想、有深度。

评论区交给你:
你平时需要合并Excel吗?最多一次合并过多少个?说出来让我们膜拜一下你的毅力(或者心疼一下你的手)。


点击关注,每天学一招,让Python给你打工!

#Python教学 #合并Excel #办公自动化 #告别复制粘贴 #效率神器


P.S. 今天的脚本一定要保存好!以后你的同事还在手动复制粘贴的时候,你可以优雅地双击脚本,然后告诉他们:“我刚喝了杯咖啡,顺手把活干完了。”

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Excel 30天极速自救指南 | Day 14:实战——把100个Excel合成1个,原来只要10行代码?

评论 抢沙发

1 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮