这是什么?适合谁?
OpenSheet(lianghsun/open-sheet)是一个为 AI Agent 而生的电子表格框架。它的核心洞察是:Agent 写分析很出色,写电子表格却很糟糕——原因是 =SUM(B2:B13) 这种 A1 单元格地址。地址是 Agent 唯一抓不住的东西:它数错表头行、忘记插入一行后公式该挪位、把一个引用写死成 B7 然后整张表的公式静默算错——不是崩溃,而是「错」,这比崩溃更糟。
OpenSheet 的解法是把地址拿走:你从不写一个单元格坐标,而是写语义引用 col('grossProfit', { formula: (r) => sub(r.cell('revenue'), r.cell('cogs')) })。框架在编译期拥有每一个坐标,加一行数据,所有引用自动重新解析。源文件里没有一个 A1 地址。
核心价值:把电子表格从「一个静态数字快照」变成「一个收件人可以改假设、看它重新计算的活模型」。一份被烤成静态数字的工作簿只是表格的照片;电子表格的价值在于公式是活的。
适合人群:
- 需要让 Agent 批量产出报表的团队(月度董事会材料、500 张发票、数据一到就重新生成的模型)
- 需要「代码评审」而不是「二进制 diff」来审阅表格变更的工程师
- 想让产出物带有活公式、能二次提问的分析师
不适合:只需要在已有 Excel 里帮人写公式的场景(那是 Claude for Excel 的活);需要一个可以交互编辑的表格前端(这是编译器框架,不是编辑器)。
使用前提:Node.js(发布 CLI 需要 Node 18+);pnpm 工具链;目标是「pipeline 的产出」而非「人打开的文档」。
准备工作
- Node.js 18+:npx 脚手架和 CLI 都需要。
- pnpm:monorepo 用 pnpm + Turbo 管理。
- 成本:MIT 开源,完全免费;无 npm 依赖运行时、无远程渲染服务。
- 时间预算:
npx @open-sheet/cli init到跑通 demo 约 10 分钟。 - 心智准备:OpenSheet 是「编译期解析引用」的思路,不是传统表格工具,需要先理解「引用而非地址」的范式。
快速上手(3 步)
第一步:初始化工作区
npx @open-sheet/cli init my-sheets
cd my-sheets && npm install && npm run dev
脚手架会生成一个 .tsx 源文件作为工作区,开发服务器提供实时预览。
第二步:写第一个列
col('grossProfit', {
header: 'Gross profit',
formula: (r) => sub(r.cell('revenue'), r.cell('cogs')),
})
注意:没有 B2、没有 SUM 范围。你用 r.cell('revenue') 语义引用,框架负责把它解析成正确的坐标。
第三步:导出活 .xlsx
# 构建导出(.xlsx / .csv / .html / .pdf 四种格式)
成功判定:导出的 .xlsx 里净收入列是 =F6*(1-taxRate) 这种活公式而非烤死的数字;改一个假设单元格,整列跟着重算。OpenSheet 的 CI 甚至用 LibreOffice 重新计算导出的工作簿来做交叉引擎验证。
初级用法
引用而非地址
r.cell('revenue')— 本行某列r.prev().cell('revenue')— 上一行ref('pl').column('revenue')— 引用另一张表某列ref('pl').total('revenue')— 另一张表某列合计ref('assumptions').get('growth')— 取标量假设(导出时还会成为 Excel 定义名称growth)
自动布局
<Stack> 和 <Row> 把块打包到网格上而不碰撞。你描述顺序,框架决定坐标——这是 OpenSheet 对 open-doc flow() 的对应物。
双后端公式树
每个公式是一棵表达式 AST,有两个消费者:serialize() 写出 Excel 公式字符串进 .xlsx,evaluate() 计算预览显示的数值。两者在 CI 里用 LibreOffice 重算对账,证明「导出含活公式」且「求值器和真实表格引擎一致」。算不出来的公式显示 #NOT_EVALUATED,绝不编造数字。
高级玩法
Agent-native 工作流
脚手架自带四个 Skill:/create-sheet、/sheet-authoring、/current-sheet、/apply-comments。MCP 服务器(open-sheet dev --mcp)让任何 Agent 框架都能驱动它。Inspect 模式可以点一个单元格看它的源行、解析后的公式和计算值,或者给 Agent 留注释。
与 Claude for Excel 组合
两者顺序组合:OpenSheet 产出带活公式的文件,正因如此,收件人可以打开结果继续提问。OpenSheet 适合「表格是 pipeline 的产出」;Claude for Excel 适合「你已有一张表想让人帮忙」。
规模批处理
因为源文件是 .tsx 代码,改模型再重建 500 次只是循环,而不是 500 次人工会话。审阅一次变更是一次代码评审,不是二进制 diff。
小技巧
- 标量假设用定义名称:
ref('assumptions').get('growth')会导出为 Excel 定义名称,让收件人看到=B4*growth而不是=B4*Sheet2!$C$9。 - 用
<Stack>/<Row>描述顺序:别手排坐标,布局变化时你会感谢框架。 - 信任
#NOT_EVALUATED:看到它意味着求值器没把握,这是设计行为,不是 bug。 - Inspect 模式做交接:点单元格看源行,给下一个 Agent 留注释,团队协作更顺。
- 四种导出都验证一遍:HTML/PDF 渲染器和 Excel writer 共享同一风格模型,打印版和工作簿应一致。
常见踩坑
踩坑 1:把 OpenSheet 当 Excel 编辑器用
- 现象:想打开已有 .xlsx 改几格,发现读不了。
- 原因:OpenSheet 只能读自己生成的
.tsx源文件,无法读取未由它生成的既有工作簿。 - 解决:已有表格找人帮忙用 Claude for Excel;OpenSheet 用于「表格是产出」的 pipeline。
踩坑 2:期待它已有 500 个 Excel 函数
- 现象:某些函数找不到。
- 原因:当前约 100 余个函数,而 Excel 有 500 多个;Pivot 表也不支持。
- 解决:评估你的公式集是否在覆盖内;复杂分析型问题(方差归因)交给 Excel 引擎。
踩坑 3:误以为静态导出就够
- 现象:导出成纯数字快照,收件人无法改假设。
- 原因:没理解「活公式」才是价值所在。
- 解决:导出
.xlsx(含公式)而非.csv快照;用定义名称让公式可读。
踩坑 4:忽视早期开发状态
- 现象:以为 npm 上有稳定版。
- 原因:目前是 Early development,
0.1.0刚发布,里程碑仍在推进。 - 解决:关注仓库 milestones,生产使用前先跑通 demo 验证端到端。
踩坑 5:不装 LibreOffice 做交叉验证
- 现象:本地求值器结果和真实 Excel 打开结果不一致也没发现。
- 原因:求值器与真实引擎的对账依赖 CI 里的 LibreOffice 重算。
- 解决:CI 里保留 LibreOffice 重算步骤,别删掉这条对账测试。
常见问题 FAQ
Q1: OpenSheet 和 Claude for Excel 有什么区别?
A: 定位完全不同。Claude for Excel 让一个人更快地做表(输入已有工作簿,每次都在循环里);OpenSheet 让表格不需要重做第二次(输入 .tsx 源文件,人在评审时出现一次)。前者在电子表格内部工作、仍写 =SUM(B2:B13) 手写地址;后者彻底不写地址,编译期解析引用。
Q2: 为什么 Agent 写 Excel 特别容易错?
A: 因为单元格地址是 Agent 抓不住的东西——它数错表头、忘记插入行后公式移位、写死一个引用然后整表静默算错。地址是 A1 表格语言唯一能表达的。OpenSheet 用语义引用在编译期解析,彻底绕开地址。
Q3: 支持哪些导出格式?
A: .xlsx(活公式,含数字格式/定义名称/冻结窗格/条件格式)、.csv、.html、.pdf。四种导出共享同一风格模型,打印版和工作簿一致。
Q4: 需要 GPU 或远程服务吗?
A: 不需要。零 npm 运行时依赖、无远程字体/资源、无网络访问。完全本地、MIT 开源。
Q5: 现在能用于生产吗?
A: 项目自述 Early development,0.1.0 已发布、144 个测试含两个驱动真实表格应用的测试。建议先在 demo 上跑通端到端,再决定是否上生产 pipeline。
进阶学习建议
掌握基础后,建议深入:
- Agent 批量报表流水线:把「数据落地 → 重建表格 → 导出活 .xlsx」做成定时 pipeline,配合
/sheet-authoringSkill 让 Agent 自动生成源文件。 - 定义名称驱动的可读模型:把关键假设全部走
ref('assumptions').get(...)导出为 Excel 定义名称,让财务收件人能直接读公式、改假设。 - LibreOffice 交叉验证闭环:复刻仓库 CI 里「导出后 LibreOffice 重算并 diff」的做法,把它作为你 pipeline 的必过门禁。
参考链接
最后更新:2026-08-27 · 作者:MagicNetWorld · 基于公开资料整理,关键数据经 GitHub API 独立实测核验,AI 辅助生成
📊 评分与标签
评分说明
总分 8.2/10 · P_优选
📊 可观测社区指标(采集日期:2026-08-27)
- GitHub: lianghsun/open-sheet ★113, 🔱10(GitHub API 实时验证)
- License: MIT;最后推送:2026-08-26(采集日前 1 天,高度活跃)
- 发布状态:Early development,
0.1.0已发布;144 个测试含两个驱动真实表格应用的测试
⚙️ 功能完整度 2.2/2.5
- 覆盖电子表格 Agent 化的核心链路:语义引用(r.cell/ref/prev)、
<Stack>/<Row>自动布局、公式 AST 双后端(serialize/evaluate)、四种导出(.xlsx/.csv/.html/.pdf)、MCP 服务器、Agent Skills、inspect 模式;不足是函数库约 100 余个,少于 Excel 的 500+,且不支持 Pivot 表。- 来源:官方 README
- 竞品对比 1(Claude for Excel):能读写既有工作簿、500+ 函数、Pivot,但每次都在循环里、输出静态文件;OpenSheet 函数覆盖少但产活公式、可代码评审。
- 竞品对比 2(open-doc/open-slide):同思路但媒体不同(文档/幻灯片),OpenSheet 吸收了表格特有的「地址/公式/重算」这个最难 chore。
✨ 输出质量 2.1/2.5
.xlsx含活公式而非烤死值,带数字格式、定义名称、冻结窗格、条件格式化;公式求值器与真实引擎经 LibreOffice 重算对账;算不出的公式显示#NOT_EVALUATED而非编造数字。- 来源:官方 README
- 竞品对比 1(普通 LLM 写 CSV):产出静态快照,无公式、无重算,收件人无法改假设。
- 竞品对比 2(Claude for Excel):Excel 引擎计算,数字是 Excel 的数字;但每次输出仍是人手工改的产物,无法「重建 500 次」。
🖐️ 易用性 1.2/1.5
npx @open-sheet/cli init一条命令起步,零 npm 运行时依赖、零远程服务;但需要理解「引用而非地址」的新范式,且早期版本文档/里程碑仍在完善。- 来源:官方 README
- 竞品对比 1(Claude for Excel):用户在熟悉的 Excel 里直接工作,上手门槛更低。
- 竞品对比 2(手写 xlsx 库如 SheetJS):要自己管理地址和布局,心智负担高得多。
💰 性价比 1.5/1.5
- MIT 开源,完全免费;索引/渲染零 token 成本、零远程服务;一次建模,pipeline 可重复重建 500 次。
- 来源:官方仓库 LICENSE
- 竞品对比 1(Claude for Excel):需要 Excel、账号和付费计划,且每次变更都要人参与。
- 竞品对比 2(商业报表 SaaS):订阅费用 + 数据外发;OpenSheet 全本地。
🔒 稳定性 0.7/1.0
- CI 用 LibreOffice 重算导出工作簿做交叉引擎验证,144 测试含真实表格应用驱动;但项目自述 Early development,
0.1.0初版,未大规模生产验证。- 来源:官方 README
- 竞品对比 1(Claude for Excel):SaaS 稳态,商业级稳定性更高。
- 竞品对比 2(SheetJS):久经验证的库,但无编译期引用解析能力。
🛡️ 隐私安全 0.5/1.0
- 全本地运行、无远程渲染、无网络访问,源文件不进云端;但作为新框架尚未有独立安全审计记录。
- 来源:官方 README
- 竞品对比 1(Claude for Excel):云端处理,数据出本地。
- 竞品对比 2(自建 pipeline):同等本地性,但需自己搭安全边界。
评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。
🏷️ 标签说明
- AI办公效率: 面向 Agent 批量产出报表的办公场景。来源:官方 README
- 开源免费: MIT 协议。来源:GitHub API
- 电子表格: 定位是「Agent 的 Google Sheets」。来源:官方 README
- Agent: 内置 Agent Skills 与 MCP 服务器,Agent-native 设计。来源:官方 README
- React: 源文件用 .tsx/React 写法建模。来源:官方 README
📋 来源核实
- ✅ 已验证: GitHub 仓库 - stars/forks/license/pushed_at 经 GitHub API 实时核验(2026-08-27)
- ✅ 已验证: 官方 README - 引用机制/导出格式/CI 对账逐条比对
- ⚠️ 未实测: 实际生成 .xlsx 的端到端流程与 LibreOffice 交叉验证结果
- ⚠️ 未验证: 函数覆盖度、性能等量化指标
⚠️ 局限与未实测声明
- 本文基于 2026-08-27 GitHub 公开 README 整理,未实际运行 open-sheet 导出流程
- 函数库、性能、生产稳定性等未量化验证,早期开发状态决定结论有效期较短
- 竞品对比基于公开文档,未经同环境实测
同分类推荐
AI办公效率 分类下的其他工具