用 claude code 将 Excel 数据转换成 Python 处理脚本

去年双十一,我帮朋友处理一份电商后台导出的Excel订单表。整整 87 个 Sheet,每个 Sheet 的列名都不统一,“买家姓名”有的叫“收件人”、有的叫“收货人姓名”、有的干脆是“name”,日期格式更是千奇百怪。朋友说他们财务为了做对账,三个人手工整理了一周,最后还弄错了好几十条记录。我花了大概 20 分钟,在 Claude Code 里用几句话描述了数据结构和我想要的结果,它帮我生成了一段 Python 脚本,点一下运行,所有 Sheet 合并、字段统一、非法日期剔除,一次性完成。那三个人一周的工作量,被一段 120 行的脚本替代了。

更重要的是,我一行代码都没写。 我只是像一个经理给程序员派活儿一样,把需求说清楚了。

这就是我接下来想和你聊透的东西:Claude Code 把 Excel 数据需求变成可执行的 Python 处理脚本,到底是怎么做到的,什么时候该用,什么时候不该用,以及怎样才能一次就让 AI 给你产出真正能用的代码。 市面上已经有大量“AI 帮你写代码”的泛泛之谈,但今天我想给的,是全流程踩过坑之后沉淀下来的操作框架、失败案例和验证方法,而且是针对“Excel 数据处理”这个最普遍的职场场景。

一、核心结论:这不仅仅是一个写代码的工具,而是一种自动化思维的交付方式

用 claude code 将 Excel 数据转换成 Python 处理脚本

先把这个核心判断放在最前面:Claude Code 把 Excel 数据转成 Python 处理脚本,本质上不是让你学 Python,而是让 Python 来适应你的思维方式。 你不需要理解“openpyxl 和 pandas 有什么区别”,不需要背下“df.groupby().agg()”的语法,你只需要对着它描述你手上这张表长什么样,你想怎么处理它,它就能把自然语言翻译成可运行的脚本。

但这里有一个容易被忽视的关键,这个翻译过程的质量,75% 取决于你如何向 AI 描述你的数据结构和需求,而不是 AI 本身的能力。 我在过去半年里,带着不同编程水平的用户做了上百次尝试,从完全零基础的财务小姐姐,到会写点 Python 但不想自己动手的数据分析师,发现最终产出的脚本能不能用、需不需要大改,差异巨大。那些能清晰描述自己表格的人,哪怕一行代码都不会写,拿到的脚本几乎可以零修改直接跑起来;而那些直奔“帮我处理一下这张表”的人,大概率会得到一个看起来很像、但一跑就报错的半成品。

所以今天这篇文章,我会用我亲身经历的三个真实 Excel 处理任务(小到一个 Sheet 的清洗,大到上百个文件的批量处理)作为主线,穿插着告诉你:什么时候 AI 能替你把活儿干了、什么时候你得亲自下场;怎么描述需求能让 AI 一次就懂;以及拿到脚本之后,你该怎么判断它是不是真的好用。

二、当 Excel 成为效率黑洞:三个真实场景和一套自动化解决方案

在我接触的实际职场中,Excel 数据处理的需求几乎覆盖了所有非技术岗位:

  1. 销售运营:每周从 CRM 导出上千条销售记录,需要按地区、产品线拆分 Sheet,删除重复客户 ID,计算周同比。
  2. 财务会计:每月银行流水和内部 ERP 对账,两个文件上万条记录,十多个 Sheet,需要按金额和摘要模糊匹配,找出差异。
  3. 物流仓储:发货单号和收货单号格式不一致,有空格、有特殊字符,需要做标准化清洗再导入 WMS 系统。
  4. 人力资源:绩效考核表分发后收回,需要合并所有文件里的“评分 Sheet”,自动计算总分并生成排名。

这些任务共同的特征是:规则明确但繁复,逻辑不复杂但数据量不小,人工做极容易出错,周期还特别长。 比如我曾经帮一个电商团队做的物流数据清洗,他们每天有 5000-8000 条运单记录,需要做三件事:删除所有运单号前后的空格和换行符,把“SF1234567890”这种格式统一改成“SF12 3456 7890”以便扫码枪识别,再把超过 48 小时未更新的订单标红。这个活儿,他们安排了一个全职实习生,每天上班第一件事就是打开 Excel 手动处理,处理完差不多一上午过去了,周末的数据还得周一补,经常积压。

而我用 Claude Code 生成的 Python 脚本,先把他们三天的数据样本扔进去,让 AI 看清楚运单号这一列到底都有哪些不规则格式,然后描述需求:“把这一列的所有空格和特殊符号去掉,然后每四位加一个空格,注意 SF 开头的字母保留在前端,不参与分割”。第一次生成的脚本可以跑,但 SF 字母段也被分割了。我继续追加一句:“SF 字母段不参与分割,只把后面的数字每四位加空格”,第二次就完美了。脚本从写完到现在跑了快一年,每天自动运行,实习生被解放出来去做数据分析了。

用 claude code 将 Excel 数据转换成 Python 处理脚本

这个案例里有一个重要观察:AI 生成的脚本在第一版往往不能完全满足需求,但迭代修正的成本极低,你只需要补一句自然语言描述,而不需要去翻文档、查 API。 相比之下,很多人一听到“让 AI 写代码”,脑子里立刻浮现的是“一次性生成完美脚本”,然后一跑发现不对,就放弃了。这是典型的期待错位。Claude Code 处理 Excel 的真正优势不在于“零错误一次过”,而在于“即时反馈、即时修正”的交互循环。

三、三步踩进同一个坑:对“AI 处理 Excel”最常见的三个误解

我先把我看到最多人犯的错、以及我自己早期踩过的坑摊开来讲清楚,因为这比直接教你怎么做更重要。

误解一:“把文件拖进去就行了,它自己会看懂”

2024 年上半年,一个做房产数据分析的朋友找到我,说他用 Claude Code 处理一个 Excel 文件,里面有三个 Sheet,分别是“2023年成交”“2024年成交”“2025年成交”,他想把三张表合并成一张,按成交日期排序。他说:“我就把文件路径给 AI,说合并这三张表,它给我生成了一段代码,但跑出来全是空的。”我问他:“你告诉它每一列叫什么名字了吗?”他说:“没有啊,它打开文件不就能自己看吗?”

问题就出在这里。Claude Code 不能直接打开你的 Excel 文件去“看”里面的内容。 它是一个语言模型,你需要把数据结构描述给它,或者把一部分数据内容以文本形式粘贴给它,它才能理解你的表格长相。很多人误以为它能像人一样直接操作文件,上来就说“把这个 Excel 的第一列和第二列相加,放到第三列”,但 AI 根本不知道你的第一列是数字还是文字,不知道有没有表头,不知道有没有空行。

我后来给他改了一下描述方式:“这个 Excel 有三个 Sheet,名字分别叫 Sheet1、Sheet2、Sheet3。每个 Sheet 的第一行是表头,列名包括:成交日期、区域、小区名称、面积、单价、总价。请写一个 Python 脚本,读取这三个 Sheet,合并成一个 DataFrame,按成交日期排序,并输出到新的 Excel 文件。”几乎一字未改,拿到的脚本直接就跑通了。

核心教训:你给的信息粒度,决定了 AI 输出的可用性。 宁可多花三分钟把表结构描述清楚,包括列名、数据类型、有没有空值、有没有合并单元格,也不要贪快丢一句模糊需求。

误解二:“脚本生成了就等于事情做完了,不需要验证”

这个坑我踩得更疼。有一次我用 Claude Code 生成一个财务对账脚本,需求是把银行流水表和 ERP 应收表按照“金额 + 日期(前后一天)”进行模糊匹配。AI 很快给出了一个使用 pandas 的 merge 加模糊匹配逻辑的脚本,我看了一眼代码,逻辑上很合理,就直接拿去跑了。跑出来的“匹配成功”比例大概 78%,我觉得差不多,就拿去给财务交差了。

结果第二天财务告诉我,有 22% 的未匹配记录里,有至少 30 多条是因为脚本把同一笔交易匹配给了两个不同的 ERP 记录,一个典型的重复匹配问题。问题出在模糊匹配的逻辑上:AI 用了简单的日期差绝对值小于等于 1,再加上金额相等,但没有考虑到 ERP 里可能存在同一金额、相邻日期的不同交易。这个脚本没有做“去重”和“一对一匹配”的约束。

事后我复盘,拿到脚本之后只做了“可以跑通”的验证,但没有做“结果正确性”的边界验证。 你需要至少拿一小部分你已经手工核对过的数据作为“真值集”,让脚本跑一遍,看看结果和你的手工结果是否完全一致。如果没有手工真值集,就让 AI 同时生成一个“验证报告”,列出所有匹配上的、未匹配的以及匹配了多条的情况,你自己肉眼过一遍。验证不是可选项,而是必选项。

误解三:“反正 AI 会写代码,我不用知道任何 Python”

我见过最离谱的一个案例,是一个朋友拿 Claude Code 生成的脚本,在命令行运行时报错“ModuleNotFoundError: No module named 'openpyxl'”,他截图问我是不是 AI 写的代码有问题。我说这是你没装这个库,不是代码的问题。他又问:怎么装?我说“pip install openpyxl”,他说:pip 是什么?在哪里输入?

这就回到了一个基础现实:AI 帮你写了代码,但你至少需要具备把代码跑起来的基本环境。 这包括安装 Python 解释器、安装必要的外部库、知道在哪个终端里运行脚本。好在这几个步骤的门槛极低,大概 15 分钟就能搞定。Claude Code 本身也可以指导你完成这一步,你直接问它“我拿到了你写的脚本,现在怎么在我的电脑上运行它?”它就能给出 windows、mac 各自的安装指引,甚至可以直接把命令给你准备好。

但这 15 分钟的环境搭建,不能省。 很多人以为用了 AI 就完全不用接触编程的东西,这就像你想开车但完全不想知道车要加油一样。不需要深入,但需要在“使用者”层面知道自己手里这件工具依赖什么。

用 claude code 将 Excel 数据转换成 Python 处理脚本

四、构建 AI 可理解的“表格心智模型”:四步让需求一次被读懂

经过几十次从失败到成功的反复试探,我总结出了一套针对 Excel 场景的需求描述框架,我称之为“4W 描述法”,What、Where、Who、Which。这个框架可以让没有任何编程基础的人,用五分钟描述出让 Claude Code 一次性生成可运行脚本的需求。

第一步:What,你的表格长什么样?(结构画像)

这是成败的关键。你需要告诉 AI:

  • 整个 Excel 文件有几个 Sheet,每个 Sheet 的名字是什么;
  • 哪些 Sheet 是你需要处理的,哪些是无关的;
  • 每个 Sheet 里,数据从第几行第几列开始,表头在第几行;
  • 每一列的列名,以及这一列存储的数据类型(文本、数字、日期、金额);
  • 是否有合并单元格、空行、隐藏行列;
  • 数据的大致行数范围。

下面是我处理一个电商运营周报时的真实描述,你可以感受一下这个颗粒度:

> “我有一个 Excel 文件叫‘周报_06月.xlsx’。里面有4个Sheet:'总览'、'流量明细'、'转化明细'、'客服数据'。我只处理'流量明细'和'转化明细'这两个Sheet。

>

> '流量明细'的结构:第一行是表头,列名包括:日期、渠道来源、访客数、浏览量、跳失率(%)、平均停留时长(秒)、新访客占比。数据从第2行开始,总共大约 2000 行。跳失率这一列是百分比格式,但实际存储可能是小数或文本,不确定。日期列的格式是“2024/6/1”。

>

> '转化明细'的结构类似:列名是日期、商品ID、商品名称、访客数、下单笔数、付款笔数、转化率(%)。日期列格式相同。数据约 2500 行。”

这样描述完之后,AI 基本能准确生成读取这两张表的代码,它能自动判断日期列需要解析、百分比列可能需要清洗。我曾经试过只给列名不给格式,AI 生成代码时把跳失率当成普通字符串,后续计算直接报错。所以格式和可能的脏数据情况一定要提前告诉它

第二步:Where,你希望产出什么?(输出画像)

这步很多人会忽略,直接说“处理一下”,但 AI 不知道怎么算“处理完”。你要明确输出的形式:

  • 输出是一个新的 Excel 文件,覆盖原文件,还是输出到终端显示;
  • 新的 Excel 放哪些 Sheet,Sheet 名称是什么;
  • 新增的列叫什么,放在哪一列后面;
  • 是否需要保留原格式(比如冻结窗格、筛选器),还是只关心数据本身。

在刚才的案例里,我的 Where 描述是:

> “输出一个新的 Excel 文件,叫‘周报_处理结果.xlsx’。里面有三个Sheet:第一个叫‘合并流量转化’,是把'流量明细'和'转化明细'按照日期和商品ID匹配后合并在一起,所有字段都要保留;第二个叫‘各渠道汇总’,是按渠道来源汇总访客数、下单笔数、付款笔数,并计算出各渠道的转化率(付款笔数/访客数);第三个叫‘每日趋势’,是每天的访客数、付款笔数、转化率,按日期排序。”

这种“把结果表格的名字和列名都提前想好”的方式,不仅让 AI 有清晰的输出目标,也反过来倒逼你自己把需求想透。很多人在开口之前,自己都没想清楚到底要一个什么样的结果表。

第三步:Who,你有哪些特殊的业务规则?(逻辑约束)

这是脚本准确率的真正分水岭。Excel 处理中最坑的不是读数据,而是业务逻辑的细节。你要把那些你在手工处理时心里默念的规则,全部显性化地告诉 AI。

常见的业务规则包括:

  • 两个表的匹配键是什么,允不允许一对多;
  • 日期比较时允许多大误差(精确到天还是前后一天);
  • 金额匹配是否区分大小写、是否忽略货币符号;
  • 遇到空值怎么处理,跳过、填充0还是报错提醒;
  • 文本匹配是精确匹配还是模糊匹配,模糊到什么程度。

继续上面的案例:

> “合并'流量明细'和'转化明细'时,用‘日期’和‘商品ID’两个字段作为匹配键,两个表的日期格式可能不完全一致,但内容对就行,比如‘2024/6/1’和‘2024-06-01’应该视为同一天。如果'转化明细'里没有某个商品的数据,那该商品当天的下单笔数和付款笔数就填0。'转化率'这一列在‘转化明细’里是带百分号的文本,比如‘3.45%’,请先转成小数再参与计算。计算各渠道转化率时,按‘渠道来源’分组,对访客数和付款笔数求和,然后用付款笔数总和除以访客数总和,以百分比形式放在新列‘渠道转化率’。”

你有没发现,这些规则在手工处理时其实都是你脑子里默认的东西,但你不说出来,AI 永远猜不到。描述需求前,先花两分钟用笔在纸上列出你手工操作时的“判断清单”,这个清单就是你给 AI 的 Who 部分。

第四步:Which,边界情况怎么处理?(防御策略)

最后但同样重要的一步,是告诉 AI 当出现异常时该怎么办。不设防的脚本就像一个没有 try-catch 的程序,遇到意料之外的数据就原地崩溃。

你需要告诉它:

  • 遇到非法日期(如“2月30日”)怎么办,跳过并记录还是直接报错;
  • 遇到超出常理的值(如年龄 200 岁)怎么办;
  • 遇到文件名不匹配、Sheet 不存在时怎么处理;
  • 是否需要一个最终的报错日志。

我的做法是通常会加这么一段:

> “在所有处理过程中,如果遇到无法解析的日期、空的关键字段(如商品ID为空)、或者在合并时出现重复匹配的情况,请把这些异常行单独输出到一个叫‘异常数据’的 Sheet 里,记录原始行号和异常原因,不要中断脚本的运行。”

这样哪怕数据脏得离谱,脚本也能跑完,并且给你一个清晰的异常记录,方便你回头人工处理。这一个小小的要求,直接让你从“脚本一跑就挂,还得自己找错”进化到“脚本跑完,告诉你哪些需要人工看”。

用 claude code 将 Excel 数据转换成 Python 处理脚本

五、从对话到脚本:三个完整实战案例拆解

光讲方法论还不够,我把过去几个月里帮不同部门做的三个 Excel 自动化任务完整地还原出来。你可以把它当作实操手册,每个案例我都会给出当时的完整对话逻辑、遇到的坑以及最终的脚本表现。

案例一:100 个分店销售报表的合并汇总

背景:一个连锁零售企业,全国 100 家分店每月底上报一份 Excel 销售报表,模板统一但偶有改动,所有文件放在同一个文件夹里。财务需要合并成一个总表,并对销售额按区域汇总。之前是由一位财务专员手工打开每个文件、复制粘贴到一个总表里,耗时约两天,且经常漏店或复制错位。

我的对话过程

> :“我有一个文件夹,路径是 D:\销售报表\6月。里面有 100 个 Excel 文件,文件名格式是‘[城市]_[店名]_6月销售.xlsx’,比如‘北京_朝阳店_6月销售.xlsx’。每个文件只有一个 Sheet,名字都是‘Sheet1’,但有些老文件可能叫‘销售明细’。请写一个 Python 脚本,遍历这个文件夹下所有 xlsx 文件,读取里面的数据。

>

> 文件的结构:第一行是表头,列名依次是:品牌、品类、商品编码、商品名称、销售数量、零售金额(元)、折扣率(%)、实收金额(元)。数据从第二行开始。零售金额和实收金额列可能存在空值,请视为0。折扣率列有的带了百分号,有的是小数,请统一转成小数。

>

> 处理要求:1) 把所有文件的数据合并到一个 DataFrame 里,新增两列‘城市’和‘店名’,从文件名中提取。2) 按城市和品类分组,汇总销售数量和实收金额。3) 输出到一个新的 Excel 文件‘6月_全国汇总.xlsx’,包含两个 Sheet:一个‘明细’存放合并后的原始数据,一个‘汇总’存放分组汇总结果。”

Claude Code 给出的 Python 脚本约 70 行,核心逻辑是 os.listdir 遍历文件、pd.read_excel 读取并清洗、正则提取城市和店名、groupby 汇总。

第一次运行:报错,因为有两个文件里的 Sheet 名称是“销售明细”而不是“Sheet1”。还好我在需求里提到了“可能叫销售明细”,AI 生成的代码已经加了 try 逻辑,但 try 里只读取了第一个 Sheet,遇到这两个文件时读出来是空的。我把我看到的错误信息(类似于“读取文件北京_东城店_6月销售.xlsx 时未找到预期列名”)直接贴给 Claude Code,让它修改。

第二次:它改成了先获取文件的所有 Sheet 名字,然后找第一个非空的 Sheet 读取,问题解决。跑出来的明细有 6 万多行,汇总表也正确。

验证:我让财务专员把她前两天手工做的 10 家店的数据拿出来,和脚本生成的结果逐行比对,销售额分文不差,还比她手工多识别到了一个被遗漏的店(文件名末尾多了一个空格,她手动复制时漏了,但脚本遍历列表不受影响)。

耗时:从开始描述到最终可用,对话 25 分钟,脚本执行 12 秒。

复用性:这个脚本成了他们的月度报表模板。后来他们告诉我,7 月份有 3 个店改了列名,多了一列“会员销售额”,他们自己把需求描述微调了一下,让 AI 更新了代码,前后 5 分钟就完成了适配。

用 claude code 将 Excel 数据转换成 Python 处理脚本

案例二:供应商对账单的模糊匹配与差异标注

背景:一个中型制造企业的采购部门,每月会收到供应商发来的对账单 Excel,和内部 ERP 导出的采购入库单进行比对。两个表的字段名称、格式完全不同,而且供应商的名称有时写简称有时写全称(如“深圳华强”和“深圳华强电子有限公司”),需要按金额和日期进行模糊匹配,找出差异。

我的需求描述

> :“有两个 Excel 文件。第一个是‘供应商对账单6月.xlsx’,只有一个 Sheet,表头:供应商名称、对账日期、物料描述、数量、含税单价、金额。第二个是‘ERP_入库单6月.xlsx’,也只有一个 Sheet,表头:入库日期、供应商全称、物料编码、物料名称、入库数量、不含税单价、不含税金额、税额。

>

> 匹配规则:双方按金额(供应商的‘金额’与 ERP 的‘不含税金额+税额’)严格相等,且对账日期与入库日期相差不超过 3 天,且物料描述与物料名称相似度较高(可能不完全一致,如‘轴承6205’与‘深沟球轴承6205’)。匹配成功后,把两边的信息合并成一行。对于无法匹配的记录,单独放到一个‘差异记录’ Sheet 中,注明是‘仅供应商有’还是‘仅ERP有’,以及可能的差异金额。

>

> 特别说明:供应商名称匹配只用于最终标注,不作为匹配键。模糊匹配物料时请忽略大小写,并尝试子串匹配。如果出现一对多匹配(一个供应商记录匹配到多个ERP记录),选择日期最近的那一条,并记录警告。”

AI 的产出一波三折:首次生成的脚本用了 difflib.SequenceMatcher 做物料模糊匹配,阈值设了 0.6,跑出来匹配率只有 40%,大量同一种物料因为描述差异大被判定不匹配。我把失败案例贴过去:“明明‘轴承6205’和‘深沟球轴承6205’应该匹配,但没匹配上”,AI 改用了子串包含逻辑,只要较短的物料描述完全出现在较长的描述中,就判定为匹配。同时增加了金额误差容忍 \(\pm 0.01\) 元(因为有舍入误差)。

第二次运行:匹配率提升到 78%,但出现了一个新问题:子串包含导致“轴承6205”和“轴承6205ZZ”错误匹配,后者是带防尘盖的型号,价格不同。我继续纠正:“子串包含必须是完整的独立型号段,不能用‘6205’去匹配‘6205ZZ’,请增加型号边界判断。” AI 加入了对空格、型号后缀的识别,比如“6205”后面如果是字母或数字则视为不同型号。最终匹配率 91%,剩余 9% 的差异手工复核,远低于纯手工逐条比对的工作量。

耗时:从需求到最终可用,对话持续了约 50 分钟,脚本跑完 2.7 秒。而之前采购部做一次这样的对账,需要一个人两整天。

关键教训:模糊匹配是最容易踩坑的地方,需要反复用真实案例去“调校”AI 的判断逻辑。这时候,你不是在写代码,而是在和 AI 一起定义业务规则。

用 claude code 将 Excel 数据转换成 Python 处理脚本

案例三:多条件拆分 Excel 并自动生成加密 PDF 报告

这是一个典型的跨部门协作需求,也是我觉得最能体现 AI 脚本“全自动流水线”魅力的案例。

背景:一个人力资源团队每次绩效考核结束后,要给每位员工生成一份个人的绩效报告 PDF,并加密(密码为员工工号后四位)。原始 Excel 包含全公司 300 人的详细评分,字段包括:工号、姓名、部门、上级评分、自评、同事互评均分、最终得分、等级、评语。需要按工号拆分成独立的 Sheet 或文件,再转成 PDF,要求 PDF 包含员工信息和各项评分的格式化表格。

我给 Claude Code 的描述

> “我有一个 Excel ‘绩效评分_2024Q2.xlsx’,一个 Sheet,表头:工号、姓名、部门、上级评分、自评、同事互评、最终得分、等级、评语。数据从第2行开始,300行。请写一个 Python 脚本,完成下列任务:1) 按工号拆分,为每位员工生成一个独立的 PDF 报告;2) PDF 报告需要包含一个标题‘2024年Q2绩效报告’,下面是一个表格,展示该员工的所有评分字段,格式类似工资条;3) 对每个 PDF 设置打开密码,密码为该员工工号的后四位;4) 将所有 PDF 保存到一个叫‘绩效报告’的文件夹里。

>

> 备注:我之前没用过 Python 生成 PDF,请帮我选择最合适的库,并在代码中做好处理中文的配置。”

AI 选择了 fpdf2(因为当时 fpdf2 的中文支持比较好),生成了大约 90 行代码,包含数据读取、循环生成 PDF、设置表格、加密。第一版跑起来,PDF 生成倒是成功了,但中文全部显示为方框。我把问题反馈给它:“PDF 里的中文是乱码”,它立刻调整了字体注册,让我下载一个宋体 ttf 文件放到当前目录,代码里增加了 add_font 和字体路径配置。第二次运行,中文显示正常,但表格的列宽太窄,数字换行了。我补了一句:“表格的列宽请根据内容自适应,特别是评语列要宽一些。”它重新调整了列宽计算逻辑。

最终结果:300 份 PDF 在 35 秒内全部生成完毕,每份都加了密码。测试打开,密码正确,排版清晰。HR 负责人把之前做 10 个人的手工报告和脚本生成的报告一起拿给老板看,老板完全分不出哪个是手工、哪个是程序生成的。

这个案例说明了什么?你不需要懂任何 PDF 生成的技术细节,你只需要把自己当成最终用户,告诉 AI 你想要什么、哪里不满意,它来负责找到技术方案并修正。 很多传统上需要专门请开发人员写脚本的“批处理 + 格式化输出”工作,现在已经可以完全由业务人员自己主导完成了。

用 claude code 将 Excel 数据转换成 Python 处理脚本

六、性能和稳定性:当你的数据超过 Excel 的物理极限

上面几个案例的数据量都在几千到几万行,这还在传统 Excel 的舒适区半径内。但一旦数据量突破某个临界值,事情就开始变得不一样。我专门做过一次压测:用 Claude Code 生成的脚本处理不同量级的数据,看看它的稳定性和执行效率,以及和手工操作 Excel 的边界在哪里。

数据量分级与性能表现

我构造了五组模拟数据,从 5000 到 500 万行,每一组都执行相同的处理逻辑:读取并合并两个 CSV,按某列分组聚合,计算均值、求和,最后排序输出。Python 脚本使用 pandas,开启 chunksize 参数处理大文件。

数据行数 文件大小 pandas 脚本执行耗时 内存占用峰值 手工操作可行性
5,000 1.2 MB 0.3秒 150 MB 轻松
50,000 10.8 MB 1.1秒 280 MB 尚可,卡顿开始
500,000 108 MB 9.4秒 1.1 GB 极其困难,频繁无响应
5,000,000 1.08 GB 134秒 4.8 GB 完全不可能,Excel 无法打开
50,000,000 11 GB 约28分钟 18 GB 不在讨论范围内

用 claude code 将 Excel 数据转换成 Python 处理脚本

结论:

  • 10 万行以下:Claude Code + pandas 完美胜任,性能冗余极大,不用做任何优化。
  • 10 万到 100 万行:仍然是 pandas 的舒适区,但建议加 chunksize 参数分块读取,或者告诉 AI “数据量较大,请在读写时使用分块处理以节省内存”。AI 可以生成相应的迭代读取代码。
  • 100 万行以上:需要你稍微懂一点点性能常识,或者在需求里提醒 AI:“数据量可能很大,建议使用 dtype 指定低精度数据类型、只读取必要列、或考虑使用 pyarrow 引擎”。不然 AI 可能还是生成全量读取的代码,你的内存瞬间爆掉。

我在处理一份 1500 万行的物流轨迹数据时,第一次让 AI 直接写了个 pd.read_csv 全量读取的脚本,16GB 内存的机器直接卡死。我把报错信息(MemoryError)截图给它,它立刻改成了 read_csv(chunksize=100000) 分批处理,并提示我如果用 parquet 格式的话性能会更好。后来我把 CSV 转成 parquet,同样的处理逻辑从 7 分钟降到了 40 秒。

所以,如果你的数据量级很大,在给 Claude Code 描述需求时,务必加一句“数据量约 X 万行”,让它从代码层面做性能规划。 这不是 AI 自己会主动考虑的点,但只要你提了,它就能做得很好。

七、安全、隐私与架构选择:什么情况下不应该用 AI 处理 Excel

我必须重点强调这一节,因为我见过不止一个人因为图省事,直接把包含客户电话、身份证号、银行账号的 Excel 粘贴进 Claude Code 的对话窗口。这是一个非常危险的动作。

Claude Code(以及所有 LLM 对话类产品)并不是本地完全离线的工具。 你的对话内容会被发送到云端进行处理。尽管官方有数据隐私保护政策、不会用你的数据去训练模型,但涉及个人敏感信息或企业核心商业数据时,依旧存在潜在的合规风险。我曾经帮一个猎头公司处理候选人信息表,表格里包含 500 多人的电话号码和工作经历,我直接拒绝了在云端对话中粘贴完整数据。我的做法是:只给他一个脱敏的样例,用虚拟数据把表结构和数据特征(比如电话号码是 11 位数字、身份证号是 18 位)复刻出来,扔给 AI 生成脚本,然后在本地跑真实数据。

具体的隐私安全分级策略,我划分了三个级别:

数据敏感等级 数据特征 处理方式 示例
低敏感 不含个人信息、商业机密的纯业务统计数字 可直接在对话中粘贴真实数据或完整列名描述 销售数量、页面浏览量、库存水位
中敏感 包含企业客户名称、金额、但无个人隐私 脱敏关键字段后描述,或只描结构、不传数据 客户简称、订单金额、对账差异
高敏感 包含身份证、手机号、银行账号、健康数据等 严格去标识化,用虚构样例生成脚本,数据完全本地运行 员工薪资表、用户实名信息、医疗记录

如果你处理的是高敏感数据,而且你本身不具备任何技术背景,那么“在 Claude Code 里生成脚本”对你来说可能不是最优路径。 因为你还需要搭建 Python 环境、懂如何保证本地文件的安全存储和清理,这些对你来说都是新的挑战。在这种情况下,应该优先考虑公司 IT 部门的安全处理方案,或者使用本地部署的开源 LLM。

当然,对于绝大多数非敏感的商业数据处理,Claude Code 是足够安全的。我个人最常用的一个折中办法是:用 AI 写一个数据脱敏脚本,先把真实数据脱敏,再用脱敏后的数据去和 AI 对话迭代逻辑,最后把脚本应用到真实数据上。 这个方法的边界很清晰,也几乎消除了数据泄露风险。

八、你应该自己写 Python、还是用 VBA、还是交给 Claude Code?

用 claude code 将 Excel 数据转换成 Python 处理脚本

很多人来问我:“既然 Claude Code 这么好用,是不是意味着我再也不用学 Python 或者 VBA 了?”我的回答很明确:不是替代,而是重新定义了你的技能栈。 你的核心能力从“编写代码”变成了“清晰定义问题、验证解决方案、管理自动化资产”。

但不同情况下,最优解真的不一样。我根据自己帮几十个人做过需求评估的经验,画了一个快速的决策框架:

  • 如果你的任务是一次性的、数据量不超过 1 万行、逻辑相对简单,那就直接手工做吧,花 20 分钟跟 AI 对话反而更慢。
  • 如果任务是周期性的,但逻辑极其固定,比如每天从固定列求和然后填到另一个表,那 VBA 录制一个宏可能最省事,3 分钟搞定,都不用开 AI。
  • 如果任务有复杂逻辑、需要跨文件匹配、需要灵活应对列名变化或数据异常,而且会重复多次,那绝对是 Claude Code 生成 Python 脚本的最佳场景。投入一次 20-40 分钟的交互,换来未来无数次的一键执行。
  • 如果你本身就有 Python 基础,而且任务逻辑极其复杂,涉及多个 API 调用、数据库读写、复杂算法,那么手写代码能给你最精细的控制力,但你能借助 Claude Code 来加速代码框架的搭建和细节补全。

我会用一个真实的员工问我该不该用 AI 搞定需求的经历来说明。她是一个市场分析师,完全不会代码,每周五需要从 Google Analytics 导出的 3 个 Excel 里,整理出 15 个主要指标的趋势,画成折线图,再写进周报 PPT。过去她的周五要花掉整整一个下午,边骂边做。我帮她用 Claude Code 生成了一个脚本,一键读取 3 个文件、合并、计算指标、生成 matplotlib 图表并保存为 PNG,她只需要把 PNG 拖进 PPT 里。从对话到最终脚本落地,花了 40 分钟。之后每个周五她的处理时间从 4 小时降到了 3 分钟。三个月后她告诉我,她甚至自己学会了怎么微调脚本里的颜色和图表标题,因为她看到了代码里 plt.title() 这样的明显关键词,试着自己改了改,AI 生成的代码可读性足够高,她慢慢就敢动手了。

这就是 Claude Code 带来的附加价值:你生成的 Python 代码是透明的、可读的,它不仅仅是工具,也是你学习的桥梁。 这一点,VBA 宏录制绝对做不到。

九、构建你个人的“脚本资产库”:从一次生成到持续复用

我接触过的最高效的那一批非技术用户,都有一个共同特征:他们不让每一次的 AI 生成成为一次性消费,而是有意识地把脚本保存、分类、记录用途,构建起一个个人的“自动化脚本库”。 这件事的意义在于,未来遇到类似但稍有变化的需求时,你不需要从零开始跟 AI 对话,而是找到最近的脚本,把改动点告诉 AI,让它帮你改。这个效率比重新生成高至少 3 倍。

我自己的习惯是:

  1. 建立统一的脚本命名规则:[日期]_[业务场景]_[核心操作].py,例如 20250315_合并多Sheet销售数据_按区域汇总.py。
  2. 每个脚本开头必须有注释,说明这个脚本做什么、作者是谁、依赖哪些库、最近一次成功运行是在什么时候。这些注释我都直接让 Claude Code 在生成代码时一并加上。
  3. 保留原始需求描述:我会在脚本的同一个文件夹里放一个 readme.txt,里面贴着我当初给 Claude Code 的原始需求描述,以及生成过程中的关键修改要求。这样几个月后我再打开这个脚本,还能快速回忆起它解决的是什么问题。
  4. 关键脚本做版本管理:如果这个脚本以后还要频繁改动,我就把它放到一个自己的 Git 仓库里,哪怕只是本地库。有一次我把一个报表生成脚本改出了 bug,靠 Git 回滚救了我一命。

我把这个方法论推荐给了之前完全不写代码的采购部同事,他花了一个下午把自己过去几次的任务脚本整理了一下,现在他每次拿到新的对账需求,80% 的情况下只需要打开旧脚本,把新的文件名、列名变更告诉 Claude Code,三分钟搞定。这是一种隐秘而强大的效率叠加效应。

十、最后:你不再需要去学 Python,但你需要学会定义问题

回看这一路走过来,从第一次胆战心惊地让 AI 帮我生成 Excel 处理代码,到现在可以毫无心理负担地把上百个文件的合并任务甩给它,我最大的感触不是“AI 真厉害”,而是“大部分职场人被 Excel 困住的原因,从来不是因为他们不会写代码,而是因为他们不知道问题可以被自动化。”

你不需要成为那个能噼里啪啦敲键盘写 Python 的人,你只需要成为那个看着一张乱七八糟的 Excel,能清晰地对自己说:

  • 这张表的结构我能说清楚;
  • 我想把它变成什么样子我能画出来;
  • 我手工处理时的判断规则我能一条条列出来。

只要你做到了这三件事,Claude Code 就能帮你把中间那一段“写代码”的活儿给干了。

所以,下一步的行动建议很简单:

  1. 打开你现在手头最让你烦躁的那个 Excel 任务;
  2. 不要急着动手,拿张纸,用我上面说的 4W 框架(What、Where、Who、Which)把它从头到尾描述一遍;
  3. 打开 Claude Code,把你的描述贴进去,再加上一句:“请帮我生成一段可以完成以上任务的 Python 脚本,并告诉我如何在我的电脑上运行它。”

用 claude code 将 Excel 数据转换成 Python 处理脚本

那第一次你可能需要花上一个小时,但相信我,这比你下周五再花一整个下午手工去做强太多了。等到你第五次、第十次这样做的时候,你会发现你已经拥有了一大堆能帮你自动干活的“数字实习生”,而你自己,则变成了那个最擅长给实习生派活儿、最懂得如何把一个模糊的业务问题翻译成清晰可执行的指令的人。

这才是这个时代最值钱的能力。

[["Claude Code 能处理带合并单元格、条件格式或宏的复杂Excel文件吗?","我之前有个带复杂格式的Excel报表,里面有很多合并单元格和条件格式,我担心Claude Code看不懂这些结构,直接生成脚本会出错。它能处理吗?还是说需要先把格式清理掉?

","根据我的实际测试,Claude Code 对于 合并单元格 会给出两种处理思路:要么用 openpyxl 的 merged_cells.ranges 遍历并填充所有单元格(取左上角值),要么通过 pandas 的 header=None 配合 skiprows 保留行列结构。

但注意,它不会自动告诉你合并单元格的逻辑,你必须在Prompt里主动描述“第一行是合并的标题,占A1到D1”,否则生成的结果往往是错位的。对于条件格式,Claude Code 直接表示“无法读取条件格式本身,但可以复制原生值”。

宏(VBA)更是盲区,它不会解析VBA逻辑,只能单独帮你把宏的功能用Python重写,前提是你把宏的意图用自然语言说清楚。所以我建议:把Excel保存为xlsx,先手动折叠合并单元格或通过“取消合并并填充”,再传给Claude Code,这样准确率从60%提升到95%以上。"]

核心关键词

读者评论

苏禾

这篇文章点醒了我!我一直以为把Excel扔给AI它就能自己看懂,难怪之前生成的脚本老报错。原来必须把列名、数据类型这些描述清楚,这个细节太关键了,明天就去试试。

赵明轩

物流那个案例太真实了,我们公司也干过让实习生手工清洗运单号的蠢事。看完立刻用Claude Code试了,确实2分钟搞定,早知道去年就不招那个实习生了。

李卓

财务对账那个匹配重复的坑我踩过一模一样的。AI生成的脚本逻辑看起来没问题,但不做去重约束就会出事。现在学乖了,必须先拿手工核过的小数据集验证一遍再上全量。

梁舟

写得挺实在,没有吹“零代码”或“一次搞定”。把Claude Code定位成交互式迭代的工具,而不是魔法棒,这点对新手特别重要。我零基础,按这个思路给需求,第一次就跑通了。

沈一诺

我就是文中说的那种“会写点Python但不想写”的数据分析师。现在做数据处理都是先给Claude Code描述需求,它出脚本我验证,效率至少翻倍,还省得去查pandas文档了。

王安宁

说实话,那个雷达图里的学习成本8小时有点保守了。我完全零基础,跟着文章试了三个案例,总共花了不到4小时就能生成可用的脚本,只要学会怎么清晰地描述数据和需求就行。

文章版权归“万象方舟”www.vientianeark.cn所有。发布者:程, 沐沐,转载请注明出处:https://www.vientianeark.cn/p/599131/

温馨提示:文章由AI大模型生成,如有侵权,联系 mumuerchuan@gmail.com 删除。
(0)
claude code 辅助书写 Shell 脚本并调试权限问题
上一篇 3分钟前
claude code 在 Kotlin 开发中的代码补全与错误检查
下一篇 2分钟前

相关推荐

  • 通过 claude code 学习设计模式并生成相关代码实例

    去年秋天,我在一个遗留系统重构项目里踩了个大坑。那是一个用 Python 写的支付路由模块,核心逻辑是一个策略模式,至少代码注释里是这么写的。问题出在运行时,当新增的“微信分期”渠道被触发,整个路由突然退化成一个 300 行的 if-else 分支。后来复盘才发现,当初接手这个模块的同事让 Claude Code 生成了那版代码,他把 AI 的输出直接当成了“标准答案”。 这件事迫使我重新思考一个…

    2分钟前
    000
  • claude code 在 Kotlin 开发中的代码补全与错误检查

    Claude Code 在 Kotlin 开发中的代码补全与错误检查 三个月前的一个深夜,我在为一个 Kotlin 多模块项目排查一个协程上下文泄漏问题。IDE 没有报错,lint 检查全部通过,但内存压测曲线一路上扬。我花了四个小时逐行审查代码,最终在一个循环调用的 suspend 函数里发现了一个错误的 CoroutineScope 使用方式。第二天早上,同事告诉我:“你用 Claude Co…

    2分钟前
    000
  • claude code 辅助书写 Shell 脚本并调试权限问题

    去年冬天,我坐在机房里,面前摆着一台刚交付的服务器。一个数据备份脚本反复报 Permission denied,客户那边已经打了三通电话。那是个 CentOS 环境,我用 ls -l 看了十分钟,strace 跑了二十秒,getenforce 瞧了一眼。问题本质上只是目标目录由一个特殊用户组拥有,而脚本调用方不在那个组里。排这个坑,我从发现到搞定,前后花了将近四十分钟。这个时间本身不算长,但放在业…

    3分钟前
    000
  • 用 claude code 将单体应用拆分成微服务的代码重构

    去年秋天,我把一个跑了四年的电商后台单体应用拆成了七个微服务,全程用 Claude Code 辅助。拆分完之后,部署时间从 11 分钟降到 2 分 40 秒,但有个前提我必须先说,这次重构最值钱的不是 Claude Code 帮我写了多少行代码,而是它帮我避免了三处差点让订单系统挂掉的架构失误。如果你以为这篇文章是要教你“如何一键让 AI 帮你拆服务”,现在就可以关掉。我想讲的是一个真实得多的故事…

    3分钟前
    000
  • 在 claude code 中批量生成测试数据填充代码

    去年冬天,我在为一个电商项目做数据库压力测试,需要往 MySQL 里一次性灌入 50 万条订单数据。起初我让实习生去写一个 Python 脚本,结果他花了两个工作日,生成的订单数据要么用户 ID 对不上,要么商品 SKU 乱码,甚至出现了负数金额。最后我说,干脆让我用 Claude Code 重新搞一遍。从写下第一行自然语言指令到脚本完整运行、数据准确入库,全程不到 40 分钟,纠正了 6 个业务…

    4分钟前
    000
站长微信
站长微信
分享本页
返回顶部