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_operate30+ 种精细化操作:写值、填充/序列、行列增删、复制/移动、排序、分类汇总、动态透视报表、高级筛选、样式(字号/边框)、数据有效性、条件格式(数据条/色阶/图标集)、自动筛选、结构化表格、页面设置、命名区域、冻结窗格、查找替换、工作表保护、邮件合并、工作表管理、合并、数据清洗(去重/填缺失/删空行空列/去空格/大小写/全角半角/分列)、整行条件高亮、两表模糊匹配;自动写审计日志
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_readmaxRows 分页读取,避免一次灌入整张表。

刚才那轮修改后帮我检查并修一下公式。

excel_autofix 一条命令完成“体检 → 确定性修复(可选 useLlm: true 走 LLM) → 复检 → 汇报”,输出修复副本与修复前后的异常数。

不知道怎么开口?

用户:D:\data\销售台账.xlsx,帮我看看能做啥

agent 会自动调用 excel_menu,先给你一句话说清这张表里有什么(行数、列数、 表头、空值、公式),再列出一份菜单:

  1. 数据清洗——去重、补空值、去空格、分列
  2. 一键经营报表——按区域分组、金额合计
  3. 动态透视汇总 / 原生透视表
  4. 图表——柱状图 / 折线图 / 饼图
  5. 公式体检 + 自愈
  6. 批量通知 / 岗位模板(运营 / 产品 / 数分)

每个选项都带一句示例话术,直接回复编号或把示例话术发过来即可;做完不满意 可以用 excel_undo 回滚。把“描述需求”变成“选需求”,不需要你会 Excel 术语。

数据清洗

把 sales.xlsx 按“产品”去重(保留第一条),B 列空值填 0,去掉名称首尾空格, 再把 SKU 列按 “-” 分成两列。

一次 excel_operate 的 operations 数组完成:dedupeRowsfillMissing(mode: value / forward / left)→ trimTextsplitColumn(自动在右侧插入新列,已有列右移、公式引用联动)。 还有 removeEmptyRows / removeEmptyColumns / changeCase (upper / lower / proper)。

数据洞察、高亮与模糊匹配

帮我看看 sales.xlsx 这表有什么问题 / 把订单表和价目表按名称模糊匹配,把编码 填回 C 列 / 把“苹果”所在的行全部标黄。

excel_insight 一次给出摘要 + 缺失/重复/异常值/负值/空格等体检结论和建议; excel_operatehighlightRows 按条件整行高亮(默认黄色),fuzzyMatch 把两表按键相似度匹配(如对账、名称有错别字)并回填目标列,可同时输出匹配 分数。

多步任务与公式解释

先清洗 sales.xlsx(去重、补空值),再按区域汇总,一次做完 / 帮我解释一下 D 列这个公式是什么意思。

excel_task 把多个 excel_operate 步骤串成一次调用,每步结束自动体检公式、 坏了自动修复,再进入下一步(复杂任务一次完成);excel_explain_formula 把公式翻译成人话:用了哪些函数、引用哪些区域、是否跨表。

表格预览

看看 D:\demo-sales.xlsx 这张表长什么样。

excel_preview 把表渲染成 Markdown 表格直接显示在对话里,同时在工作簿旁生成 <文件名>.preview.html,用浏览器打开就能看到完整的表格视图(公式、样式按 单元格内容展示)。

Goal 模式(Agent 闭环)

把这个表做成一张月度经营报表,金额按区域汇总、表头加粗、自动筛选。

不写步骤,直接给目标:excel_taskgoal 模式会让 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 提交。