Agent 与自动化
让 AI 写一个小程序,一按就把订单表变成报告
我们跑过
- 适合谁
- 每个星期都要把 Excel / CSV 订单整理成报告的老板和上班族
- 你会得到
- 一个 Python 小程序 report.py,以后每个星期一行指令就生成报告。金额用 Decimal 计算,坏的资料会列出行号和原因,不会偷偷跳过
- 工具
- Codex、Claude Code
- 时间 / 费用
- 大约 20 分钟(第一次) · 用你现有的订阅;需要还有额度,用 API 或超出额度可能另外收费
- 难度
- 进阶
- 最后测试
- 2026-10-16
开始前准备
你需要:一份订单表(Excel 或 CSV),电脑上有 Python 3(在终端打 python3 --version,看到版本号就行,没有的话先装好 Python 3),还有 Codex 或 Claude Code(要能在电脑上建立和运行文件)。
步骤
- 在 Excel 里筛出你要的那个星期,选中表头和这些行,用“定位条件”里的“可见单元格”复制,贴到一个新的工作表,再另存为“CSV UTF-8(逗号分隔)”。直接另存会把筛掉的行也存进去,程序也不会自己挑日期。
- 打开存好的 CSV,看日期是不是只有那个星期,再把第一行的栏位名称和日期写法抄下来。
- 想好报告要看什么,例如总单数、总营业额、卖最多的几样、每天的营业额。
- 开一个新文件夹,只放这个任务,在里面打开 Codex 或 Claude Code。复制下面的 prompt,填好栏位、日期写法和报告内容,交给它。
- 它会自己做一个假的 CSV 跑一次,再用另一个方法算总营业额。看它说两个数字一不一样。测试好了就关掉 Codex 或 Claude Code。
- 另外开一个文件夹,把 report.py 和你真的订单 CSV 放进去。在这个文件夹打开终端,运行 python3 report.py "你的订单.csv",再打开 report.md。
- 先看最上面的“读了几行、算进去几行、坏的几行”,再看最后的坏行明细。去原表改好,重新做第 1 步另存 CSV,再跑一次。
- 以后每个星期做第 1、2、6、7 步就好。
Prompt
帮我写一个 Python 小程序,把订单 CSV 整理成一份报告。以后我每个星期都会用它。
CSV 的栏位:{例如 date,order_id,item,qty,price_rm}
日期的写法:{例如 2026-10-16(年-月-日)}
报告要有:{例如 总单数、总营业额、卖最多的 5 样、每天的营业额}
要求:
1. 存成 report.py,用法是 python3 report.py 订单.csv,结果写成 report.md。在 report.py 最上面用中文写清楚怎么用。
2. 只用 Python 自带的东西,不用另外安装。
3. 要读得懂 Excel 另存的“CSV UTF-8”,开头有 BOM 也可以。价钱写成 RM 1,234.50、RM25.50 或 1234.5 都要认得。
4. 钱用 Decimal 算,不要用浮点数,最后显示两位小数。
5. 同一个 order_id 有好几行是正常的(一单买几样),总单数按不同的 order_id 算。
6. CSV 里有坏的行(栏位空的、数量或价钱不对、日期跟我说的写法不一样),不要偷偷跳过,要在报告最后列出来:行号、原因和那一行的内容。那一行的内容用 csv 模块把读到的那笔记录重新写出来,不要自己按换行符切行。
7. 报告最上面写清楚:读了几行、算进去几行、坏的有几行。
8. 自己做一个假的 CSV,里面故意放几行坏资料,还有一个 RM 1,234.50 这样的价钱。跑一次给我看结果,再用另一个方法算一次总营业额,确定一样。
9. 只用你自己做的假资料测试,不要打开或读取我电脑里其他的 CSV。假的 CSV 不要放客户名字和电话。
10. 报告和说明都用短句,不要用分号。我们测试的结果
# 订单报告 读取 15 行。计入 7 行。坏行 8 行。 行数按资料记录计算,不含表头。 总单数:6 总营业额:RM 3,811.80 只统计有效行。金额显示两位小数,采用四舍五入。 ## 卖最多的 5 样 | 商品 | 数量 | | --- | ---: | | 商品丙 | 8 | | 商品丁 | 5 | | 商品戊 | 4 | | 商品乙 | 3 | | 商品甲 | 3 | ## 每天营业额 | 日期 | 营业额 | | --- | ---: | | 2026-10-16 | RM 2,545.50 | | 2026-10-17 | RM 1,251.30 | | 2026-10-18 | RM 15.00 | ## 坏行 行号为记录开始的实际文件行号。内容由 csv 模块重新写出。 ### 第 9 行 原因:item 为空。 ```csv 2026-10-18,TEST007,,1,5 ``` ### 第 10 行 原因:qty 须为正整数。 ```csv 2026-10-18,TEST008,商品甲,0,5 ``` ### 第 11 行 原因:price_rm 须为非负价钱,千位逗号须正确。 ```csv 2026-10-18,TEST009,商品甲,1,"RM 12,34.50" ``` ### 第 12 行 原因:日期须为有效的 YYYY-MM-DD。 ```csv 2026/10/18,TEST010,商品甲,1,5 ``` ### 第 13 行 原因:日期须为有效的 YYYY-MM-DD。 ```csv 2026-02-30,TEST011,商品甲,1,5 ``` ### 第 14 行 原因:qty 须为正整数。price_rm 须为非负价钱,千位逗号须正确。 ```csv 2026-10-18,TEST012,"换行商品 第二行",-2,NaN ``` ### 第 16 行 原因:栏位数应为 5,实际为 4。 ```csv 2026-10-18,TEST013,商品甲,1 ``` ### 第 17 行 原因:栏位数应为 5,实际为 0。 ```csv ```
容易出错的地方
- Excel 直接存的 CSV,中文有时会变乱码。另存的时候选“CSV UTF-8”。
- 价钱栏写成“RM 1,234.50”是可以的,但日期一定要跟你在 prompt 里讲的写法一样。混着 16/10/2026 和 2026-10-16,不一样的那些会被列成坏行。
- 真的订单资料只在第 6 步那个文件夹里,自己跑。不要放进 AI 打开的文件夹,也不要贴给 AI。
- 报告的数字看起来不对,先看坏行明细和最上面的行数,不要马上叫 AI 改程序。
- 栏位名称改了(例如换了新的收银系统),程序会读不懂。把新的栏位名称给 AI,叫它改 report.py,再用假的 CSV 测一次。
这是我们自己的用例,自己测试过。