dsh-excel-chat 使用指南
August 16, 2026 · View on GitHub
在 DeepSeek Harness 里用自然语言操作 Excel:读、写、算、画、改,最后自动体检 公式有没有被弄坏。
1. 安装
前提:已安装 DeepSeek Harness(dsh CLI 或桌面端)。
# 从 npm 安装(推荐)
dsh plugin --profile demo add dsh-excel-chat
# 或从 GitHub 安装
# dsh plugin --profile demo add github:hccccc01333/dsh-excel-chat
# 打开对话界面
dsh web --profile demo
锁定版本:dsh plugin --profile demo add dsh-excel-chat@0.23.1(不写版本默认 latest)。
装完先自检一次(检查宿主包隔离 + 引擎冒烟,装坏了一跑就知道):
dsh-excel-chat-doctor
# 或:~/.dsh/profiles/demo/node_modules/.bin/dsh-excel-chat-doctor
# 对话里也可以直接发 /excel-doctor
2. 一分钟开始
打开对话后,直接说:
- “帮我把 report.xlsx 做成报表:D 列毛利、E 列合计、表头加粗、冻结首行、加筛选”
- “检查 sales.xlsx 的 D 列公式有没有错,不对的修掉”
- “按区域生成透视表,金额合计,再生成柱状图”
- “用模板给每笔订单生成发货通知”
agent 会自动调用工具完成,并把结果文件路径告诉你。
3. 工具总览
| 工具 | 作用 |
|---|---|
excel_read | 精确读取:值/公式/类型/数字格式/字体/填充/对齐/合并/数据有效性 |
excel_profile | 大表速览:表头、每列类型/缺失/唯一值/数值区间/高频值/样例 + 建议读取范围;配合 maxRows 分页读大表 |
excel_semantic_profile | 语义画像:列角色(时间/维度/指标/标识)、数据粒度、派生指标、跨表关联键;分析类任务先跑它,避免找错列 |
excel_menu | 不会描述也没关系:给文件就出菜单——一句话摘要 + 清洗/报表/透视/图表/体检/通知/岗位模板等可选方案,每个带示例话术,直接选 |
excel_insight | 数据洞察:一句话摘要 + 缺失/重复/异常值/负值/空格等体检 + 下一步建议 |
excel_preview | 表格预览:Markdown 表格(对话内展示)+ HTML 预览文件 |
excel_task | 多步编排(steps 模式,逐步体检/修复)+ Agent 闭环(goal 模式:LLM 规划→执行→验证→重规划) |
excel_explain_formula | 公式白话解释:函数、引用区域、跨表引用、运算 |
excel_validate_formulas | 静默公式错误检测:列 pattern、结构不匹配、硬编码、空行、循环引用、#REF! 等错误值 |
excel_compile_formula | 语义 Formula IR(binary/ratio/aggregate/function)→ 确定性公式 |
excel_repair_formulas | 确定性修复 + 可选 LLM 修复,输出修复副本并复验 |
excel_autofix | 一键自愈:体检 → 确定性修复(可选 LLM)→ 复检 → 人话汇报;修复副本自动附带隐藏健康报告表 |
excel_health_report | 把公式体检报告写进工作簿本身(隐藏「_dsh_体检报告」表:健康分 + 异常清单),报告跟着文件走 |
excel_operate | 30+ 种精细化操作:写值、填充/序列、行列增删、复制/移动、排序、分类汇总、动态透视报表、高级筛选、样式(字号/边框)、数据有效性、条件格式(数据条/色阶/图标集)、自动筛选、结构化表格、页面设置、命名区域、冻结窗格、查找替换、工作表保护、邮件合并、工作表管理、合并、数据清洗(去重/填缺失/删空行空列/去空格/大小写/全角半角/分列)、整行条件高亮、两表模糊匹配;自动写审计日志 |
excel_undo | 按审计日志回滚一次 excel_operate 编辑 |
excel_diff_workbook | 两个 workbook 的单元格级差异 |
excel_validate_charts | 图表结构校验 |
excel_create_chart / excel_modify_chart | 创建/修改图表(类型/标题/图例/坐标轴),Windows + Excel |
excel_create_pivot | 原生数据透视表(多行/列字段、筛选器 + 值字段),Windows + Excel |
excel_export_charts | 导出图表 PNG,Windows + Excel |
4. 典型场景
报表搭建
帮我把 report.xlsx 做成报表:D 列毛利(收入-成本)、E 列合计、表头加粗填浅灰、 冻结第一行、加筛选。
agent 会用一次 excel_operate 完成 set + style + freezePanes + autoFilter,并返回
操作后公式复验结果。
公式体检与修复
检查 sales.xlsx 的 D 列公式是否都是“收入-成本”,不对的修掉,输出到 repaired.xlsx。
流程:excel_read 看清现状 → excel_validate_formulas 定位异常 →
excel_repair_formulas 修复并复验。
大表速览与一键自愈
先看一下 D:\data\销售台账.xlsx 的结构,再按页读数据。
流程:excel_profile 返回紧凑画像(每个表/每列的类型、缺失、唯一值、数值
区间、高频值、样例与建议读取范围);大表按 readHint 起手、用 excel_read
的 maxRows 分页读取,避免一次灌入整张表。
刚才那轮修改后帮我检查并修一下公式。
excel_autofix 一条命令完成“体检 → 确定性修复(可选 useLlm: true 走 LLM)
→ 复检 → 汇报”,输出修复副本与修复前后的异常数。
不知道怎么开口?
用户:D:\data\销售台账.xlsx,帮我看看能做啥
agent 会自动调用 excel_menu,先给你一句话说清这张表里有什么(行数、列数、
表头、空值、公式),再列出一份菜单:
- 数据清洗——去重、补空值、去空格、分列
- 一键经营报表——按区域分组、金额合计
- 动态透视汇总 / 原生透视表
- 图表——柱状图 / 折线图 / 饼图
- 公式体检 + 自愈
- 批量通知 / 岗位模板(运营 / 产品 / 数分)
每个选项都带一句示例话术,直接回复编号或把示例话术发过来即可;做完不满意
可以用 excel_undo 回滚。把“描述需求”变成“选需求”,不需要你会 Excel 术语。
数据清洗
把 sales.xlsx 按“产品”去重(保留第一条),B 列空值填 0,去掉名称首尾空格, 再把 SKU 列按 “-” 分成两列。
一次 excel_operate 的 operations 数组完成:dedupeRows →
fillMissing(mode: value / forward / left)→ trimText →
splitColumn(自动在右侧插入新列,已有列右移、公式引用联动)。
还有 removeEmptyRows / removeEmptyColumns / changeCase
(upper / lower / proper)。
数据洞察、高亮与模糊匹配
帮我看看 sales.xlsx 这表有什么问题 / 把订单表和价目表按名称模糊匹配,把编码 填回 C 列 / 把“苹果”所在的行全部标黄。
excel_insight 一次给出摘要 + 缺失/重复/异常值/负值/空格等体检结论和建议;
excel_operate 的 highlightRows 按条件整行高亮(默认黄色),fuzzyMatch
把两表按键相似度匹配(如对账、名称有错别字)并回填目标列,可同时输出匹配
分数。
多步任务与公式解释
先清洗 sales.xlsx(去重、补空值),再按区域汇总,一次做完 / 帮我解释一下 D 列这个公式是什么意思。
excel_task 把多个 excel_operate 步骤串成一次调用,每步结束自动体检公式、
坏了自动修复,再进入下一步(复杂任务一次完成);excel_explain_formula
把公式翻译成人话:用了哪些函数、引用哪些区域、是否跨表。
表格预览
看看 D:\demo-sales.xlsx 这张表长什么样。
excel_preview 把表渲染成 Markdown 表格直接显示在对话里,同时在工作簿旁生成
<文件名>.preview.html,用浏览器打开就能看到完整的表格视图(公式、样式按
单元格内容展示)。
Goal 模式(Agent 闭环)
把这个表做成一张月度经营报表,金额按区域汇总、表头加粗、自动筛选。
不写步骤,直接给目标:excel_task 的 goal 模式会让 LLM 规划操作序列,
执行后由 LLM 验证器判断目标是否达成;没达成就带着上一轮结果重新规划,
最多 maxRounds 轮(默认 2)。每一步仍然经过公式体检 + 确定性修复。
数据分析(透视 / 汇总 / 高级筛选)
按区域生成动态透视报表(金额合计 + 数量计数),再给订单表做分类汇总,F 列加 数据条条件格式,最后保护工作表。
aggregateReport 生成的是实时 SUMIFS 联动报表;excel_create_pivot 生成的是
Excel 原生可交互透视表;subtotal 负责分类小计。
想要一条指令出整套经营报表,用 report 模板操作(排序 + 分类汇总 + 动态透视
汇总 + 自动筛选 + 表头样式 + 冻结首行 + 数字格式一步完成):
用 report 给订单表按区域生成经营报表:金额合计,输出到“经营报表”,数字格式 用 #,##0.00。
跨表补列(VLOOKUP)
给订单表加一列“产品名称”,用 VLOOKUP 从产品价目表按产品代码查。
批量通知(邮件合并)
用“通知模板”表(含 {区域}、{数量} 占位符)给每笔订单生成一行通知,放到 “发货通知”表。
图表
用 excel_create_chart 给订单表建柱状图:区域为分类、金额为数值,标题“区域金额”。
Windows + Excel 环境可用;图表创建后可继续用 excel_modify_chart 改类型/标题/
坐标轴。
5. 平台与限制
- 公式校验、修复、读写、样式、汇总、合并、邮件合并等跨平台(macOS / Linux / Windows)。
- 图表创建/改参、原生透视表、图表导出依赖 Windows + 本机安装 Microsoft Excel。
excel_undo是内容级撤销:单元格值/公式/样式会恢复;插入/删除的行列结构不会 消失(内容会还原)。如果文件在编辑后被再次修改,回滚会拒绝执行而不是覆盖。- 删除行列时,引用被删单元格的公式会变成
#REF!(与 Excel 行为一致),验证器 会把它报为错误值。
6. 常见问题
模型找不到我的文件? 告诉它文件的绝对路径(如 D:\data\销售台账.xlsx),或先
让它用 excel_read 看一下。
为什么报告里有异常但没修复? 有些异常(如结构不匹配)需要 LLM 修复,调用
excel_repair_formulas 时加 useLlm: true;确定性修复只处理引用偏移和空行填充。
想一条命令体检 + 修复? 用 excel_autofix:默认走确定性修复;结构不匹配
加 useLlm: true 交给 LLM。
撤销失败说前置条件不匹配? 说明文件在操作之后又被改过,日志与现状对不上, 这是保护机制,不是 bug。
7. 反馈
问题与建议请到 https://github.com/hccccc01333/dsh-excel-chat/issues 提交。