乐于分享
好东西不私藏

为什么 Excel Agent 很难成为下一个 Code Agent ?

为什么 Excel Agent 很难成为下一个 Code Agent ?
这几天翻了不少 Excel Agent 项目。最初的问题很简单:编程工具已经有 OpenCode、Cline 这样的开源产品,下载安装到电脑上,选一个模型,甚至接本地 Ollama,就可以开始读代码、改文件、运行命令。Excel 用户更多,为什么没有一款差不多成熟的东西?

GitHub 上其实很热闹。MCP、CLI、解析器、Excel 加载项,能想到的路线基本都有人试过。可看得越多,越觉得这件事并不只是“还差一个好界面”。

表格当然可以交给 AI 修改。真正麻烦的是,表格背后的工作能不能一起交出去。

一、工具已经不少了

ExcelMcp是其中能力很深的一种。它不是给 openpyxl 套一层 MCP,而是通过 Windows COM 直接控制真实的 Microsoft Excel。Power Query、公式重算、透视表、图表、VBA、DAX,都可以调用 Excel 自己的能力。老的 .xls 也有机会原样打开和保存,因为真正处理文件的是 Excel。

代价也很清楚:只能在 Windows 上运行,需要安装 Excel 2016 或更高版本,还必须有交互式桌面。现在它已经提供 VS Code 扩展、可执行文件和双击安装的 MCP 包,安装比以前省事了不少,但它仍然需要 Claude Desktop、VS Code 或其他 Agent 当“大脑”。普通财务人员不会因为双击装好了 MCP,就自然得到一款完整的 Excel 助手。

OfficeCLI走了另一条路。它不要求安装 Office,跨平台读写 Office 文件,还能把 .xlsx 渲染成 HTML 或图片,让 Agent 改完以后再看一遍。这样的组件很适合服务器、批处理和文件生成。不过它面对的是磁盘上的文件,看不到用户正在 Excel 里选中了哪一格,也不能完整继承 Excel 的重算、宏、Power Query 和数据模型。

haris-musa/excel-mcp-server把公式、格式、图表、数据验证等操作封装成 MCP;excel-parser会把工作簿解析成带公式依赖的结构;agent-spreadsheet已经开始认真处理 dry-run、操作日志、分支和 undo/redo。它们分别补上了执行、理解和恢复。

再往产品靠近一点,Pi for Excel把 Agent 放进了 Excel 侧边栏,能读取工作簿,也能用不同模型修改内容,不过项目目前仍明确写着 experimental。AionUi已经有桌面界面,支持 Ollama、LM Studio 和多家云模型,也内置 Excel Creator。它更接近普通人能够安装的产品,只是主要在通用工作区里处理 Office 文件,和“接管当前打开的复杂工作簿”还有区别。

这里还有一个很容易写错的地方:有些 Office 自动化项目写着支持 WPS,通常说的是 Windows 版 WPS 暴露的 COM 对象。它不等于支持统信 UOS、银河麒麟上的 WPS,更不等于适配了 ARM、龙芯和单位的信创环境。

这样看,Excel Agent 缺的零件并不多。模型也不是门槛,接 Qwen、DeepSeek、Claude、OpenAI,或者本地 Ollama 都行。真正没有长出来的,是一款普通用户安装以后就能稳定使用的完整产品。

二、把这些东西包起来,够不够?

最顺手的想法,是先不管苹果和国产 Linux,只做 Windows。

做一个安装包,后台用 ExcelMcp 控制真实 Excel,自动发现本机 Ollama,前面放一个聊天框。用户说“把这张表清洗一下”“把公式补齐”“按地区做个汇总”,程序完成修改,展示差异,随时撤销。

单从工程上看,这条路线可以走。Windows 上的 Excel 用户也足够多,做出来大概率会有人用。

但它并不是一块没人发现的金矿。微软自己已经在做同样的事。2026 年,Excel Agent Mode 进入桌面端,可以处理本地 .xlsx、.xlsb 和 .xlsm;微软公开列出的后续计划里,还有修改差异、备份恢复和老 .xls 支持。微软的说明,几乎就是第三方准备补上的功能清单。

第三方还站在微软的地板上。COM 牵涉大量企业旧系统,微软不太可能明天一声不响就删掉,但 Office 更新、安全策略、加载项权限、商店分发和授权方式都掌握在微软手里。它也可以把新能力只放进原生 Copilot,再随 Microsoft 365 一起卖。

所以,一个 Windows + Excel + Ollama 的开源客户端可能很受欢迎,却未必适合被当成一门可以长期掌控的平台生意。开发者负责适配,微软掌握 Excel 和入口。

到这里还只是产品层面的麻烦。进入财务以后,问题会更深。

三、Excel 是工具,业务系统更像一台计算器

传统业务系统看起来复杂,执行层其实没有那么“智能”。报销系统检查发票和额度,ERP 按状态流转订单,财务系统根据科目和凭证生成报表。条件已经由制度、流程和开发人员提前写进去,系统负责计算、校验、拦截和留痕。它更像一台很大的计算器,再加上一套状态机。

需要判断的地方一直有人。某笔费用算什么,例外能不能放行,损失是否进入这次经营统计,先由业务和专业人员确认,再把结果交给系统处理。

Excel 比业务系统更松。它是一件通用工具,没有统一的字段、状态和流程。很多条件藏在公式、颜色、备注、另外一张表里,更多条件只存在于做表人的经验中。

Agent 加进来以后,看起来像是补上了这层“智能”:上面说一句话,模型自己判断该用哪些表、哪些记录该算、异常怎么处理。可它一旦替公司决定这些条件,就已经不只是操作 Excel 了。它在临时充当业务系统、业务人员,甚至专业责任人。

四、Code Agent 带来的幻觉

Code Agent 最先让人惊讶,也最容易让人误判 Agent 的能力边界。

代码世界里,大量规则早已被写过无数遍。同一种接口、数据结构、异常处理、权限校验和框架写法,散落在 GitHub、官方文档、问答和测试中。企业内部的代码量更大,一个 Agent 进入现有仓库以后,还能直接参考这个团队过去的实现。它接到的新任务,很多并不是一种从未出现过的新问题,而是对已有结构的查找、组合和修改。

代码自身又是形式化的。语法能解析,类型能检查,程序可以编译,单元测试和集成测试可以运行,改动还能进入 Git diff。模型写错以后,机器很快会返回一个相对明确的错误。Code Agent 很强,很多时候仍然是在一个规则高度重复、结构可以验证的工具世界里工作。

早期编程 Agent 的效果太亮眼,很容易产生一种幻觉:既然 AI 能自己改完一个软件项目,也应该能自己做完财务、法律、医疗和经营工作。可它证明的首先是,AI 在一个规则反复出现、结构明确、结果还能被机器验证的环境里很有用,不是所有工作都已经具备同样的条件。

五、越靠近业务,规则越少,责任越重

公司 Excel 里的业务条件恰好相反。它可能只在这一家公司、这一张表、这一次统计里出现,既没有公开样本,也没有语法规则。没有哪个编译器能判断某张报销单为什么不该计入今年业绩。Excel Agent 遇到的常常是:工具里存着一半数据,另一半规则在人脑子里。

业务当然也有制度和流程,只是越靠近真实经营,写下来的规则越不够用。销售想看签单,财务关心收入确认和现金,投资者关心增长,税务关心合规,老板要在利润、现金、风险和市场份额之间取舍。“今年业绩怎么算”并不是一道天然存在的算术题,它本身就是管理决定。

遇到冲突时,也没有一个编译器给出唯一答案。公司内部还有职位、授权和部门利益;进入市场以后,还有客户、竞争对手、合同、谈判、资金、库存、交付能力和现实的物理限制。竞争对手会改变动作,客户会反悔,政策和合同会变化。市场不会在一次经营决策后立刻跑出一组单元测试,告诉你答案正确。

所以,Agent 自己决定哪些订单算业绩、哪些损失暂不统计、哪些数字对投资者展示,已经不是在替人按按钮。它是在行使组织里原本属于某个职位的权力。谁授权、谁能否决、谁承担后果,不能被藏进一次模型调用里。

越靠近业务,责任越多,权力边界越模糊,Agent 可以自主决定的范围反而应该越小。工具必须依附在有授权、懂事实、能负责的人身上。

六、上面一句话,下面不是一个动作

管理层会说:“把今年的财报都审核整理一下。”

这句话很正常,但它落到财务手里,根本不是打开几个 Excel、点一下合并。

还有一类更常见的说法:“统计一下今年的销售”“看看今年各业务做得怎么样。”老板说的是经营问题,下面拿出来的却是不同业务人员按自己的工作习惯做出来的账本和台账。

销售按签单记,运营按交付记,财务按收入确认记,回款表按实际到账记。几张表都写着“金额”和“日期”,含义却不一样。同一个客户可能用了简称、全称和历史名称;退单在销售表里保留,在业绩表里冲减,在运营表里又可能标成已关闭。做表的人懂这些来龙去脉,单看列名看不出来。

不同的人还会在表里做自己的取舍。某个订单后来取消了,一张报销单只是代垫,一笔损失不计入业务业绩,一次内部调拨不进入销售统计。有人会直接删掉这一行,有人保留记录但不让公式统计,有人放进“特殊事项”,月底再手工调整。表里通常只剩下处理结果,没有写清楚当时为什么算、为什么不算。

换一个人接手,同一张表都可能做出不同结果。不是谁一定算错了,而是每个人掌握的业务背景、统计目的和例外规则不同。Agent 只看见单元格,很容易把前一个人有意排除的记录重新加回来,或者把后一个人为了留痕保留的数据算两遍。

所以“统计今年的”并没有直接对应一个可以执行的公式。先要问清楚统计什么、按哪个时间点、以哪张表为准、冲销和跨期怎么处理。Agent 如果只是自动对齐列名、去重再求和,很容易把几个各自合理的业务口径拼成一个错误的总数。

今年到底指自然年、财年,还是截至当前月份?数据来自总账、明细账、辅助账,还是各业务部门自己维护的表?有没有漏交的账本?同一笔业务是否在两个文件里重复出现?币种、税率、单位和期间是否一致?“12.5”到底是十二块五、十二万五,还是 12.5%?某张表导入一半时报错,后面的步骤还能不能继续?

还有公式。很多文件型工具可以把公式字符串写进单元格,却没有真实 Excel 帮它回算。写入成功和数字正确是两件事。一个汇总结果可能仍然带着旧缓存,或者某几张表已经更新,另一张依赖表还停在上个月。

再往下还有不同用途的口径。法定财务报告、纳税申报基础、内部经营报表、给投资者看的材料,面对的问题不同,可以有调整,也可能呈现不同层次的细节。合法的税务筹划同样要依据真实业务、合同和现行规则。各个口径之间必须留下调整过程,回得到原始凭证和业务事实,最后能够勾稽。

这不是让 AI 自己“做几套账”。一旦来源对不上、调整说不清,表做得越漂亮,风险越大。2024 年修订的《中华人民共和国会计法》要求会计资料真实、完整,软件生成的凭证、账簿和报告也在里面。

PPT 不太一样。一页做得不好看、少讲了一个观点,通常在汇报前还能看出来,最坏是表达打了折扣。财务表里的一个小数点、一个重复项、一段没有回算的公式,可能继续进入纳税、现金安排、经营判断、审计和投资者材料。它的负向结果不一定当场出现,甚至可能很久都没人发现。

七、财务人员干活的时候,已经在监督了

这才是 Excel Agent 最容易被说错的地方。

常见的设计是:Agent 把事情做完,人来审核。听起来保留了人在回路里,实际把财务工作拆成了两段——机器执行,人负责最后看一眼。

现实里的监督并不是最后那一眼。

财务人员录入一笔数据时会看凭证,合并两个账本时会想为什么口径不同,看到一个异常数字会回头找合同、问业务,做税务调整时会同时考虑事实、规则和后续影响。他在干活的过程中不断修正理解。干一遍,本身就完成了一部分监督。

如果 Agent 把过程全部压缩掉,只留下最终结果,人失去的恰恰是这些上下文。面对一份结构完整、数字整齐的报表,他很难重新检查中间发生过的每一次匹配、舍入、调整和异常处理。表越像真的,越容易让人放松。

这里应该明确一条边界:人是业务主体、判断主体,也是责任主体。

这不是出了问题以后再把责任交还给人。责任从来没有离开过人。系统可以执行确定的操作并留下记录,AI可以找重复、查缺失、比较账本、追踪公式、提示异常。科目怎么归、口径怎么调、税务怎么处理、结果能不能对外,仍然由掌握业务事实的人在过程中决定。

人也不能退到流程末尾,变成替 Agent 点一下“审核通过”的橡皮图章。

所以更合适的产品形态,可能不是一个“自主会计”,而是一套人用来完成工作的系统,AI一直在旁边检查。它看见异常就指出来,遇到缺失就停下来,不能自己猜一个数把流程走完;每一步改了什么、为什么改、影响了哪里,都留在人的视野里。

八、医学和法律也有同一条边界

这种情况并不只属于财务。

医生在问病史、查体、看检验结果的过程中逐渐形成判断。某个症状有没有被遗漏,药物是否冲突,患者描述里的细节意味着什么,都不是最后看一眼诊断书能够补回来的。让 AI 完成诊断,医生只负责签字,同样把判断过程抽空了。世界卫生组织在 2026 年谈医疗政策中的 AI 时,把原则概括得很直接:AI用于增强而非自动替代,人仍负责提出问题、判断证据质量并结合情境解释结果。WHO 说明

法律也一样。律师读合同、核对证据、追问事实、判断管辖和程序时,正在一步步搭起案件。AI 可以检索、归纳、找矛盾、起草初稿,却不能先生成一份完整意见,再让律师替它承担事实错误、虚假引用和保密风险。美国律师协会关于生成式 AI 的正式意见仍然把胜任、保密、沟通等义务放在律师身上;英国司法系统的相关指引也强调,署名者要对以自己名义产出的材料承担个人责任。ABA Formal Opinion 512 说明;英国司法系统 AI 指引

这几个领域的共同点很清楚:事实不完整,例外很多,专业人员在执行中形成判断,最后还有明确的责任归属。AI越过辅助位置以后,得到的不只是更高效率,也可能是一个看起来完整、却没人真正经历过其形成过程的结论。

九、Excel Agent 成熟的标志,可能是没那么像 Agent

回头再看 GitHub 上那些项目,会发现最值得保留的未必是工具数量。

ExcelMcp 的价值在于它真的调用 Excel;excel-parser 尝试保留公式和来源;agent-spreadsheet 在做 dry-run、日志和撤销;Pi for Excel 把操作放回工作簿旁边;AionUi 证明了本地模型和桌面界面可以接起来。这些方向拼在一起,已经很接近一套可用的辅助系统。

但最后那一步不能只是再加一个“自动执行全部”的按钮。

真正面向普通用户的版本,当然应该有安装包,能连接 Ollama,也不该让人手写 MCP 配置。它更需要把当前选区、公式依赖、来源、差异、回算结果和异常都摆出来。一次修改可以很快,整个财务过程仍然要由人掌握。

编程 Agent 越来越强调自主执行,因为代码还有 Git、diff 和测试兜底。Excel 特别是财务场景,成熟也许意味着另一件事:知道哪些动作可以交给机器,哪些地方必须让人停下来判断。

表能不能做出来,GitHub 上已经给了很多答案。

谁在做,谁看见了过程,最后谁对数字负责,这才是 Excel Agent 真正难的部分。