在 AI Agent 里,生成文件只是任务做到一半。
用户可以让 Agent 汇总数据、做销售报表、整理项目计划,或者改一个已有的 Excel 文件。Agent 做完之后,工作区里留下一个 .xlsx。接下来用户得确认这个文件对不对:工作表有没有漏,公式结果合不合理,格式完不完整,数据还要不要人工调。
DSH 里没有对应的查看工具时,用户还是得下载文件,再用桌面 Excel 打开。Agent 已经在浏览器里干完了活,结果确认却回到了本地软件,流程在最后一步断了。
dsh-spreadjs-editor 接的就是这一段。
文件生成了,任务还没结束
Agent 的文本回复能直接显示在会话里,文件结果不行。一个文件是不是「已经完成」,不能只看 Agent 返回的路径或者一句成功提示。
以销售报表为例,用户可能要看:
- 约定的明细表和汇总表有没有都生成。
- 日期、金额和百分比格式对不对。
- 汇总公式引用的数据区域对不对。
- 列宽、冻结窗格和筛选看起来方不方便。
- 标题、备注或者个别数据是不是还要手改。
这些动作不一定都要扔回给 Agent。有些判断得人直接看,有些小修改用户自己动手更快。完整的 Agent 文件工作流通常包含「生成、预览、确认、调整」几个环节。

它没有给 SpreadJS 加任何功能
先说清一件事:dsh-spreadjs-editor 没有增强 SpreadJS 的公式、格式或编辑能力。插件用的是原生 SpreadJS Designer,把它注册成 DSH 文档系统里负责工作簿的那个实现。
用户从当前会话的工作区选文件,插件读出来交给 SpreadJS,然后由 Designer 显示工作簿。插件支持 .xlsx、.xlsm、.csv、.sjs 和 .ssjson;Excel 文件走 ExcelIO 载入工作簿,SpreadJS 自有格式和 CSV 走各自的导入方式。
为什么要直接上完整 Designer
如果目标只是显示几行数据,一个只读网格就够了。但 Agent 生成的 Excel 往往不是简单的二维数组,里面可能有多个 Sheet、公式、格式、图表或者其他工作簿对象。
插件直接用 SpreadJS Designer,没有另外做一套简化工具栏。这么做有两个原因。第一,用户看到的是完整的电子表格界面,能用熟悉的方式检查工作簿。第二,插件不重复实现 SpreadJS 已经提供的编辑命令和界面。
保存是怎么写回工作区的
插件把自己注册成 DSH 文档系统里处理工作簿的那个实现,文件入口沿用 DSH 自带的右侧栏,不再需要第三方侧边栏插件。
打开文件时,由 DSH 读出完整字节交给插件;保存时,插件把 Designer 导出的字节写回你打开的那个文件。用户不需要自己走「下载、修改、重新上传」这一套。
这条链路也划出了职责边界:
- DSH 管 Agent 会话、工作区文件,以及文件的读取和寻址。
dsh-spreadjs-editor负责文件格式适配、编辑器集成,以及写回原文件。- SpreadJS 与 Designer 负责电子表格交互和工作簿处理。
这么分有个实际好处:每层都能独立演进。DSH 升级会话能力、SpreadJS 升级表格引擎、插件补格式适配,都不需要另外两层跟着改。职责混在一起就麻烦了,Agent 框架开始理解单元格和公式,表格组件开始处理会话和文件路径,出问题时很难定位。
现在最适合的用法
现阶段最清晰的场景是「Agent 完成任务后,用户预览或继续编辑结果」。
比如可以要求 Agent:
代码块
Plain
请根据当前目录中的订单数据生成一份月度销售报表,
包含明细表和按区域汇总的工作表,并保存为 sales-report.xlsx。
Agent 完成后,用户直接从右侧文件树打开 sales-report.xlsx,检查工作表、数据、公式和格式。只改一个标题或者调几个值,在 Designer 里就能完成并保存。
这个流程不要求 Agent 理解 SpreadJS API。Agent 只负责按自己的工具能力生成文件,插件负责让结果可见、可检查、可继续编辑。
让 Agent 直接改你正在看的表
保存写回解决的是「改完要落盘」。再往前一步的问题正好相反:Agent 想改的时候,用户正在编辑器里看着同一张表。
0.2.0 起,编辑器会把当前打开的工作簿交给同一页面里配套的驱动插件(@grapecity-software/dsh-spreadjs-driver)。装上之后,可以直接对 Agent 说「把金额列改成红色」,改动立刻出现在屏幕上那张表里。
这条路和「Agent 生成文件、你再打开」有本质区别:改的是同一个对象,不是文件副本。所以它不会覆盖你尚未保存的编辑,也不会动磁盘上的文件------改动只活在编辑器里,除非你明确要求保存。工作簿是编辑器主动交出去的,同页面上的其他插件拿不到。
没有装驱动插件时,编辑器行为和以前一样。这段适配是单向的、可选的,两边都不需要硬依赖对方。
再往后,是把表格操作本身变成一组结构化的工具,让 Agent 不必靠通用文件工具去写工作簿。那是方向,不是当前已经有的能力;真要走到那一步,还得解决操作模型、文件并发、错误回滚和结果验证这些问题。
自建 DSH 服务的情况
DSH 是 B/S 架构,插件作为 DSH 插件安装,同时向 Web UI 注册浏览器端编辑器。
个人开发者可以直接拿它做本地 Agent 工作流。准备部署自有 DSH 服务的团队,也多了一个现成的 Excel 编辑入口,可以结合自己的用户体系、工作区管理和业务流程。
怎么开始
安装和启动步骤见《5 分钟体验 dsh-spreadjs-editor》。需要版本较新的 DSH,不需要额外安装侧边栏插件。启动后在 Web UI 右侧文件树里打开支持的文件即可。
小结
AI Agent 能生成 Excel,但用户还是得看见、判断、调整结果。dsh-spreadjs-editor 把原生 SpreadJS Designer 接进 DSH,让 Agent 生成文件之后的预览和编辑留在同一个 Web 工作流里。
现在解决的是结果查看、人工编辑和保存写回。再进一步,Agent 可以直接修改用户正在看的这张表,这个入口就从「结果预览」变成了「人机协作界面」。