---
title: "W07 上机练习五：Claude Code 从上市公司年报 PDF 做财务分析工作簿"
---

# 🧪 练习五：Claude Code 从上市公司年报 PDF 做财务分析工作簿

[上机导航](https://ai.lingnan.top/materials/2026-autumn/w07/lab-manual) · [常见问题](https://ai.lingnan.top/materials/2026-autumn/w07/faq) · [工具说明总览](https://ai.lingnan.top/materials/2026-autumn/w07/tools-index)

材料在学生材料包的 `05_年报财务分析/` 里。

## 这个练习做什么

工作区里有一份贵州茅台 2025 年年度报告 PDF（143 页）。让 Claude Code 在本机写 Python 程序：找到三张报表，把主要项目抽进 Excel，算毛利率、净利率、资产负债率、ROE，做杜邦分解并配图，写一页结论；最后用程序读回归母净利润，和年报原文对数，写明页码。

| 项 | 内容 |
| --- | --- |
| 客户端 | Claude Code（录屏用 2.1.303，macOS 终端），接 DeepSeek，模型 deepseek-flash；权限是默认模式（底部显示 manual mode），每条命令都先问 |
| 工作区 | 一个新文件夹，只放年报 PDF，下载方法见 `材料包/下载说明.md` |
| 工具 | 本机 Python：读 PDF 的库、写 Excel 的库、画图的库，缺什么它自己装；不需要装 Excel |
| 录屏长度 | 3 分 55 秒，等待段加速播放 |

### 🎬 讲解录播

<video controls preload="metadata" playsinline style="display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:10px" src="/course-materials/2026-autumn/w07/slides/media/w07-demo3.mp4"></video>

录播 3 分 55 秒，带讲解和字幕，播放器右下角可以全屏。

## 准备

1. 按 `材料包/下载说明.md` 下载年报，核对 SHA-256，放进一个新建的空文件夹。
2. 电脑上有 Python 3；Claude Code 已经接好 DeepSeek（例如用 CC Switch 配置）。
3. 把 pip 的下载源设成清华镜像。录屏的电脑事先设好了，所以录屏里没有这一步。没设过的话，先在 Claude Code 里发送：

```txt
把这台电脑 pip 的默认下载源设成清华镜像 https://pypi.tuna.tsinghua.edu.cn/simple ，设好后告诉我怎么确认
```

自己动手的话，命令供参考：

```txt
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
```

## 指令原文

在工作区文件夹里打开终端，输入 `claude` 启动。第一次进这个文件夹，它会问是否信任，选“信任”。然后发送下面这一段（录屏里就这一条指令）：

```txt
读这份年报，把合并资产负债表、利润表、现金流量表的主要项目抽到 茅台财务分析.xlsx，三张表各一个工作表；再算近两年的毛利率、净利率、资产负债率、ROE，并做杜邦分解（净利率 × 资产周转率 × 权益乘数），放进“比率与杜邦”工作表并配一张图；最后写 结论.md 一页，说 ROE 变化主要来自哪一项。做完用程序读回归母净利润，和年报原文的数字对一对，写明在原文第几页。
```

录屏里遇到确认框时的选择：

- 读 PDF、查本机有哪些库、用 pip 装包：看清命令后选第一项 Yes。
- 后面要反复运行 Python，这里选第二项“python3 命令以后不再询问”。
- 要新建脚本文件时，选第二项“本次会话自动接受文件编辑”。

从发送到完成，录屏里用了 9 分 54 秒。

## 看点

- 一份 143 页的 PDF，智能体自己写程序逐页找“合并资产负债表”“合并利润表”这些标题，定位到第 56 到 66 页，再抽数、算比率、出图。
- 缺什么装什么：它先查本机有没有读 PDF 的库，没有就请求用 pip 装，写原生 Excel 图表时又补装了一个库。
- 每次运行命令、写文件都先请求确认，人看清了再批准。
- 验收看程序读回的数字和原文页码，不看它的转述。

## ✅ 自查

1. **工作表齐不齐**：打开 `茅台财务分析.xlsx`，有合并资产负债表、合并利润表、合并现金流量表、比率与杜邦四个工作表，“比率与杜邦”里有一张图。
2. **读回的数能不能在原文找到**：看它报告的归母净利润和页码，自己打开 PDF 翻到那一页，在合并利润表“归属于母公司股东的净利润”这一行核对。录屏里读回的 2025 年数字是 82,320,067,101.68 元，在原文第 62 页。
3. **杜邦三项相乘是不是等于 ROE**：在 Excel 里把净利率、资产周转率、权益乘数三项相乘，和表里的 ROE 比一比，两年都要相等。
4. **结论有没有写口径**：`结论.md` 要写明 ROE 用的是期末权益还是平均权益，并说清 ROE 变化主要来自哪一项。

## 常见问题

**pip 装包很慢或失败。**
多半是 pip 还在用国外的默认源。先按“准备”第 3 步设好清华镜像，再让它重装。

**它想装一个很大的软件。**
录屏里它中途请求用 Homebrew 装 LibreOffice，用来把表格转成 PDF 看排版。这一步不是任务必需的。确认框弹出时可以选 No，并告诉它“不要装 LibreOffice，用 Python 检查就行”。

**它的 ROE 和年报里的“加权平均净资产收益率”不一样。**
口径不同。年报披露的是加权平均净资产收益率；智能体可能用期末权益或期初期末平均权益来算。口径不同，ROE 的数值会不同，“主要来自哪一项”的结论也可能变。要求它在结论里写明口径，并和年报披露的数对照说明差别。

**页码对不上。**
分清 PDF 阅读器里的第几页和年报页脚印的页码。这份年报两者相同；别的 PDF 有封面、目录时可能不同，让它两个都写。

**表格抽错了行或数字串了列。**
让它换页或换方法重抽，并在结论里写明哪几项是人工核对过的。程序读回、原文对数这一步就是为了发现这类问题。

**它调用了一些技能。**
录屏的电脑上装着 pdf、xlsx、dataviz 和中文润色等技能，它在过程中调用了。没有这些技能也能完成：录屏前的一次试跑没有调用 pdf、xlsx 技能，产物同样通过了核对。

**确认框太多。**
默认模式下每条命令都问。可以像录屏里那样，对反复出现的同类命令选“以后不再询问”，但装软件、删除文件这类动作，每次看清再点。

**用 Windows 能不能照做？**
录屏在 macOS 上完成。Windows 上照这条指令做，未实测；命令由 Claude Code 自己按系统选。
