2026年11月2日 1 分钟阅读

AI 助手读不懂大型 Excel?Sheetgraph 用公式图谱压缩工作簿上下文

tinyash 0 条评论

把几十万格的工作簿直接贴给大模型,往往不是“上下文不够”这么简单:重复公式与重复数据会淹没真正重要的结构;而只给一份 CSV,又会丢失公式、跨表依赖和被手工覆盖的单元格。开源项目 Sheetgraph 试图在两者之间搭一座桥:先把 Excel 或 Google Sheets 提取成可读报告和依赖图,再让 AI 按需查具体单元格。

它解决的不是“把表格变成文本”

Sheetgraph 是一个用 Rust 编写的本地命令行工具。项目 README 列出 xlsx、xlsm、xls、xlsb、ods、CSV,以及 Google Sheets 等输入;它会生成 REPORT.md、graph.json 和保存单元格细节的压缩数据。报告描述工作表、数据块、公式组、跨表关系、验证规则等,图谱则记录读取、导入、宏调用等关系。遇到需要核实的数值,Agent 可以再用 cells 或 trace 查询,而不必只依赖摘要。

这种分层尤其适合“先概览、再取证”的工作流。README 给出的演示中,一个 141,000 单元格的工作跟踪表被概括为约 940 tokens 的报告;这是项目自己的示例,不应当理解成所有工作簿都能达到同样压缩比例。报告还会把规律相同的公式归为公式组,并指出公式列中被手工输入值打断的位置,让异常更容易被发现。

本地提取,再把报告交给 Agent

macOS 和 Linux 可按仓库提供的安装脚本安装;已有 Rust 1.88 或更高版本时,也可以从 Git 仓库安装。最小流程如下:

sheetgraph extract budget.xlsx

默认会生成 sheetgraph-out/INDEX.md 以及工作簿对应目录。先让 Agent 阅读 INDEX.md 和 REPORT.md,再针对具体问题查单元格:

sheetgraph cells sheetgraph-out/budget "'Revenue Input'!A1:F20"
sheetgraph trace sheetgraph-out/budget "Monthly!E10" --depth 3
sheetgraph find sheetgraph-out/budget "VAT"

这里的目录名应以实际生成结果为准;示例中的 budget 是工作簿目录占位名。cells 用于读取范围,trace 查看公式前置与后续依赖,find 则搜索值、公式、注释等内容。对“为什么合计不对”这类问题,合理顺序是先读报告定位相关工作表,再追踪汇总单元格,最后核对依赖链上的输入与公式,而不是让模型凭摘要猜数。实际使用时,可以把这一步变成可重复的检查清单:记录被追踪的单元格地址、公式文本及其引用范围;当报告指出公式组存在硬编码断点时,再用 cells 读取断点附近的原值,并与相邻公式单元格对照。这样得到的结论更容易由同事复核,也能避免把格式差异误判为计算错误。对于含多个工作簿的流程,可先从索引确认文件间引用,再逐个提取相关文件,减少把无关表格一股脑交给模型的成本。

项目也提供面向 Agent 的 Skill:仓库说明 Claude Code 可以通过插件市场安装;Codex、Cursor 等则可复制 skills/sheetgraph/SKILL.md 到对应技能目录,或加入 AGENTS.md。因此,工具的价值不止于生成一份静态报告,还包括告诉 Agent 何时提取、何时追查以及引用数值前如何核对。

数据边界与使用前检查

本地文件处理无需云端上传;README 明确强调本地文件留在本机。Google Sheets 则涉及 Google API,需要按项目说明配置凭据。报告的单元格级数据保存在本地工作目录,应像原始工作簿一样做好权限和备份管理。

也要把限制纳入预期:项目标注为 Beta(0.1),报告格式和库 API 仍可能变化;对于超大本地文件,超过其单元格预算时会概括中间行,而非完整保留每格;动态引用(如 INDIRECT/OFFSET)也可能令依赖边不完整。宏的影响范围来自代码分析,不是实际执行宏得出的结果。涉及财务或运营决策时,仍应回到源工作簿复核关键单元格,不能把自动报告当作审计认证。

适用场景包括:给编码 Agent 提供工作簿结构上下文、追踪跨表公式、定位被覆盖的公式,以及在大型表格中检索特定值。若问题只是读取一张小型平面 CSV,直接用现有表格工具通常更简单;Sheetgraph 的优势主要在公式和工作簿结构值得保留时。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。