← 全部用例

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(要能在电脑上建立和运行文件)。

步骤

  1. 在 Excel 里筛出你要的那个星期,选中表头和这些行,用“定位条件”里的“可见单元格”复制,贴到一个新的工作表,再另存为“CSV UTF-8(逗号分隔)”。直接另存会把筛掉的行也存进去,程序也不会自己挑日期。
  2. 打开存好的 CSV,看日期是不是只有那个星期,再把第一行的栏位名称和日期写法抄下来。
  3. 想好报告要看什么,例如总单数、总营业额、卖最多的几样、每天的营业额。
  4. 开一个新文件夹,只放这个任务,在里面打开 Codex 或 Claude Code。复制下面的 prompt,填好栏位、日期写法和报告内容,交给它。
  5. 它会自己做一个假的 CSV 跑一次,再用另一个方法算总营业额。看它说两个数字一不一样。测试好了就关掉 Codex 或 Claude Code。
  6. 另外开一个文件夹,把 report.py 和你真的订单 CSV 放进去。在这个文件夹打开终端,运行 python3 report.py "你的订单.csv",再打开 report.md。
  7. 先看最上面的“读了几行、算进去几行、坏的几行”,再看最后的坏行明细。去原表改好,重新做第 1 步另存 CSV,再跑一次。
  8. 以后每个星期做第 1、2、6、7 步就好。

Prompt

直接复制,贴给你的 AI

帮我写一个 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

```
这是它用自己做的假 CSV 跑出来的报告。我们另外用自己做的、更乱的 CSV 测了它的 report.py:总营业额 RM 3,837.90、6 单、3 行坏资料,跟我们自己算的一样。

容易出错的地方

这是我们自己的用例,自己测试过。