Skip to main content

Excel 表格(profy-xlsx)

创建、编辑、分析电子表格。与「让模型算好数再填进去」的做法相反,这个能力的核心约束是产出必须是活的表格:公式留在单元格里,源数据一改结果就跟着变。

激活方式

profy-xlsxuser_selectable: false——自动可用,不需要勾选。插件面板里看不到它,因为它没有需要你决策的东西。
它的 contracts 只声明 skills: ["skills/"]没有 tools。这意味着专家不是调用某个”生成 Excel 的工具”,而是在沙箱里用 bash 跑 Python(openpyxl / pandas),技能文档规定它该怎么跑。 触发条件是表格文件是主要输入或输出.xlsx / .xlsm / .csv / .tsv。如果最终交付物是 Word、HTML 报告或独立脚本,就算中间处理了表格数据也不走这条路径。

快速开始

第一原则:用公式,不要硬编码

这是整份技能里被反复强调的一条,值得单独说清楚为什么。
差别不在于哪种写起来快,而在于交付物的性质。硬编码出来的是一张数字快照——你改一个输入,其余全是错的,而且没有任何提示。留公式出来的是一个模型——它能被使用、被审计、被复用。 这条规则适用于所有计算:合计、百分比、比率、差额,无一例外。

必做步骤:重算与校验

写完公式的文件里,单元格存的是公式文本,缓存值是空的。直接交付会让对方打开时看到一片空白或旧值。所以有一步强制动作:
脚本靠 LibreOffice 重算(sandbox 里 Unix socket 受限的情况由 scripts/office/soffice.py 自动处理),返回 JSON:

必须清零的五类错误

交付标准是零公式错误,不是”大部分能算”。

财务模型规范

做财务模型时,技能会套用行业通行的约定,让任何看过财务模型的人拿到就能读。

颜色编码

这套配色的作用是一眼分辨哪些数能改、哪些数是算出来的。改了黑色字的单元格就破坏了模型,颜色是最省事的护栏。

数字格式

公式构造

  • 假设集中放:增长率、利润率、倍数等全部放独立假设单元格
  • 引用而非写死:用 =B5*(1+$B$6),不要用 =B5*1.05
  • 投影期公式一致:每一期的公式结构必须相同,否则中间某年会悄悄算错
  • 硬编码必须注明出处:格式为 Source: [系统/文档], [日期], [具体位置], [URL],例如 Source: Company 10-K, FY2024, Page 45, Revenue Note
最后一条容易被忽略,但它决定了这份模型半年后还能不能被信任——一个没有出处的硬编码数字,等于一个无法验证的断言。

改已有文件时:模板优先

已有模板的约定永远覆盖上面所有规范。 修改别人的文件时,先研究它现有的格式、样式与惯例并精确匹配,不要把标准化格式强加上去。
理由很直接:你不知道那套格式背后有什么下游依赖。一份被下游脚本按列位置解析的表,你”顺手规范化”一下列顺序,下游就全断了。

工具选型

标准流程是:选工具 → 创建/加载 → 修改 → 保存 → 重算 → 校验并修错。

边界与失败态

  • 重算依赖 LibreOffice。沙箱里已预装;本地 Desktop 环境若没有,recalc.py 会失败,此时公式不会有缓存值。
  • .xlsm 的宏不会被执行。可以读写文件结构,但宏逻辑不参与计算。
  • 图表由 openpyxl 生成,样式能力有限。复杂的可视化需求更适合交给可视化能力做成网页图表。
  • 超大表有内存上限。几十万行以上建议先用 pandas 聚合,再把结果写成 xlsx,而不是把原始数据整个装进 openpyxl。

排错

验证你的产出

  1. 打开文件,随便改一个输入单元格——下游数字应该跟着变。不变就说明有硬编码。
  2. 全表搜索 #,五类公式错误应该一个都搜不到。
  3. 财务模型再看一眼颜色:蓝色应该只出现在输入区,黑色应该覆盖所有计算区。

相关页面

办公文档总览

四类文档能力的定位与选型

数据可视化

需要交互式图表时的另一条路径
核对日期 2026-08-11。来源:services/agent-runtime/src/plugins/builtin/xlsx/plugin.jsonskills/SKILL.mdskills/scripts/recalc.pyskills/scripts/office/soffice.py