
AI批量处理表格实战:合并、清洗、拆分全流程
先说句大实话:我以前每个月都要手动整理一堆格式不统一的表格,复制粘贴到手酸,还经常改错。后来想明白一件事——让 AI 直接帮我点鼠标是不现实的,但让 AI 帮我写一个能重复运行的脚本,再由脚本去批量干活,这件事就完全可行了。这篇我把自己跑通的流程从头到尾讲一遍,零基础也能照着做。
一、先想清楚:AI 在表格批处理里到底干什么
很多人(包括一开始的我)会直接甩一句「帮我合并这些表格」,结果 AI 给的东西根本跑不起来。先分清 AI 的三个用法,思路就顺了:
| 用法 | AI 做什么 | 你做什么 |
|---|---|---|
| 写代码 | 生成处理脚本 | 提供文件结构和需求,运行脚本 |
| 定规则 | 把模糊需求翻译成明确条件 | 确认规则是否符合业务 |
| 查结果 | 分析输出、找异常、写核对逻辑 | 抽查确认,最终拍板 |
记住一个原则:AI 负责「把规则变成脚本」,脚本负责「把活干一万遍」,你负责「确认规则对不对」。
二、动手前必做的三件事
- 备份原始文件。把原始表格复制一份到 backup 目录,脚本只处理副本。这一步能救命。
- 把需求写成一句可验证的话。比如「把 data 目录下所有 xlsx 合并成一个总表,保留文件名作为来源列,去掉完全重复的行」——这句话就是后面验收的标准。
- 准备 3 到 5 行的小样本。用几十 KB 的小文件试跑,比对着几百 MB 的大文件调试快十倍。
三、给 AI 的提问模板(这一步决定成败)
我后来固定用这个模板,一次就能拿到能跑的脚本:
我要处理的文件情况:Excel 文件,放在 data 目录下,约 20 个。
每行代表一条订单,关键列有:订单号、日期、部门、金额。
我的目标:合并所有文件,删除重复订单号,按部门汇总金额并导出。
运行环境:Windows,已安装 Python 和 pandas。
请给我一个可以直接运行的脚本,逐段解释它在做什么,并告诉我哪里需要按我的实际情况修改。
模板要点就三条:交代运行环境、给出真实的列名、要求逐段解释。列名一定要贴你自己的表,不然 AI 只能瞎猜。
四、环境准备
只需要装两个常用库,pandas 负责表格处理,openpyxl 负责读写 Excel 文件:
pip install pandas openpyxl
把 AI 给的脚本存成 process.py,在脚本所在目录打开终端运行:
python process.py
如果提示找不到 pandas,多半是装到了别的 Python 环境里,让 AI 根据你的报错信息继续排查即可。
五、四个高频场景的脚本写法
场景 1:批量合并一个文件夹里的表格
import glob
import pandas as pd
files = glob.glob("data/*.xlsx")
frames = []
for f in files:
part = pd.read_excel(f)
part["来源文件"] = f
frames.append(part)
all_data = pd.concat(frames, ignore_index=True)
all_data = all_data.drop_duplicates(subset=["订单号"])
all_data.to_excel("总表.xlsx", index=False)
print("合并完成,共", len(all_data), "行")
最后那行 print 很重要,它让你一眼知道处理了多少行,方便和原始文件对数。
场景 2:批量清洗,把脏数据变规整
import pandas as pd
df = pd.read_excel("总表.xlsx")
df["部门"] = df["部门"].astype(str).str.strip()
df["部门"] = df["部门"].str.replace(" ", "", regex=False)
df["金额"] = pd.to_numeric(df["金额"], errors="coerce")
df["金额"] = df["金额"].fillna(0)
df.to_excel("总表_清洗后.xlsx", index=False)
要点:先统一文本(去空格),再转数字(转不动的变成空值),最后补默认值。顺序反了容易出问题。
场景 3:按规则批量加一列
import pandas as pd
df = pd.read_excel("总表_清洗后.xlsx")
df["金额等级"] = "普通"
df.loc[df["金额"] >= 10000, "金额等级"] = "大额"
df.to_excel("总表_带标记.xlsx", index=False)
规则越明确越好,「大额」到底是多少,必须是你定的数字,别让 AI 替你拍板。
场景 4:按条件拆分成多个文件
import pandas as pd
df = pd.read_excel("总表_带标记.xlsx")
for name, part in df.groupby("部门"):
part.to_excel("部门_" + str(name) + ".xlsx", index=False)
print("拆分完成")
六、我踩过的坑,都整理在这张表里
| 坑 | 典型现象 | 解决办法 |
|---|---|---|
| 数字被存成文本 | 求和结果是 0 或报错 | 用 pd.to_numeric 强转,转不动的设为空值 |
| 列名带空格或换行 | 提示找不到列 | 用 df.columns = df.columns.str.strip() 统一清理 |
| 中文导出成 csv 乱码 | Excel 打开全是问号 | 用 to_csv("x.csv", index=False, encoding="utf-8-sig") |
| 日期格式不统一 | 排序和筛选全乱 | 用 pd.to_datetime 统一转换 |
| 直接覆盖原文件 | 改错了没法找回 | 输出一律用新文件名,原文件只读 |
七、交付前的核对清单
AI 生成的脚本跑完不算完,我每次都会过这四条:
- 对行数:合并后的行数应该等于各文件行数之和减去去重掉的行数。
- 抽样看:随机打开输出文件看 5 行,和原始数据比一比。
- 看空值:用 df.isnull().sum() 检查关键列还有没有空的。
- 看汇总:让 AI 再写一行分组求和,和你印象里的量级对一对,差太多就要回头查。
import pandas as pd
df = pd.read_excel("总表_带标记.xlsx")
print(df.isnull().sum())
print(df.groupby("部门")["金额"].sum())
八、把流程固化下来,下个月一键复用
跑通一次之后,别让脚本躺在草稿箱里。把文件路径和规则数字集中写在脚本开头,下个月只要替换文件、重新运行就完事。如果想更进一步,可以让 AI 把脚本打包成带界面的小工具,或者写成定时任务,这块的命令和做法以你所用系统和官方文档为准。
最后说点心得:表格批处理这件事,门槛不在代码,而在于「你能不能把规则说清楚」。规则说清了,AI 写代码是真快;规则含糊,再强的模型也只会给你一份看着像模像样、跑起来全是问题的脚本。先从一个真实的小需求开始,今天就能跑通第一个。