DingTalk Sheets

Polar Sponsor
爱发电 赞助
.NET 9.0

管理钉钉在线表格中的表格文件、工作表和单元格数据,当用户需要创建表格、查看工作表、读取范围数据、写入单元格、追加行或查找单元格时使用。适用于涉及钉钉表格、电子表格、在线表格、工作表、单元格、报表、CSV导入导出等关键词的场景。不要在用户需要操作钉钉文档正文、管理日程、发消息或处理审批流时触发。

钉钉表格 Skill

功能概述

钉钉表格 Skill是一项面向实际任务的技能,主要用于Overview;用户可能要求你创建钉钉在线表格、管理工作表、读取单元格范围、写入指定区域、末尾追加行,或在工作表里查找数据;

核心要点

  • 表格操作有明显依赖关系:通常要先拿到 nodeId ,再拿到 sheetId ,最后才能精准读写;
  • 临时覆盖规则:禁用 append_rows;
  • 即使 MCP tools/list 仍然暴露了 append_rows ,当前也要把它视为 临时。

使用与执行

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

钉钉表格 Skill

Overview

用户可能要求你创建钉钉在线表格、管理工作表、读取单元格范围、写入指定区域、末尾追加行,或在工作表里查找数据。表格操作有明显依赖关系:通常要先拿到 nodeId,再拿到 sheetId,最后才能精准读写。

临时覆盖规则:禁用 append_rows

即使 MCP tools/list 仍然暴露了 append_rows,当前也要把它视为临时不可用。原因是上游服务存在不稳定情况,可能返回成功退出码但实际写入失败,或直接报 provider 错误。

处理“末尾追加几行 / 继续追加流水 / 新增一批记录”时,必须改用下面的回退流程:

  1. get_sheet(nodeId, sheetId) 读取 lastNonEmptyRow
  2. 根据待写入数据的行列数,计算下一段空白区域的 rangeAddress
  3. update_range(nodeId, sheetId, rangeAddress, values) 完成追加效果

只有在明确验证 append_rows 恢复稳定后,才允许恢复直接调用。

严格禁止

  1. 禁止编造 nodeId / sheetId -- 必须从工具返回值中提取,不能手写猜测
  2. 禁止把钉钉文档当作钉钉表格处理 -- get_range / update_range 只支持在线电子表格,传文档类型会报错
  3. 禁止忽略 range 与 sheetId 的覆盖关系 -- 当 range 自带 sheetId!A1:D10 前缀时,应以 range 里的工作表为准
  4. 禁止在未确认目标工作表前直接写入 -- 不确定时先 get_all_sheets,必要时再 get_sheet
  5. 禁止让 update_range.values 维度与 rangeAddress 不一致 -- 行列不匹配会导致写入失败或错位
  6. 禁止直接调用 append_rows -- 当前上游服务不稳定;所有追加请求都必须改走 get_sheet + update_range
  7. 禁止在追加行时忽略列对齐 -- 追加写入的列数应与现有表格结构保持一致
  8. 禁止暴露敏感 MCP URL -- 凭证 URL 含访问令牌,只能写成占位符或环境变量名

可用方法列表

方法 用途 必填参数 关键说明
create_workspace_sheet 创建新的在线表格文件 name 可创建到文件夹、知识库根目录或“我的文档”
create_sheet 在表格中创建工作表 nodeId, name 重名时会自动重命名
get_all_sheets 获取所有工作表 nodeId 返回工作表 ID 和名称
get_sheet 获取工作表详情 nodeId sheetId 选填,不传时按服务端默认解析
get_range 读取单元格范围 nodeId sheetId / range 选填;不传 range 时读全部非空数据
update_range 更新指定区域 nodeId, sheetId, rangeAddress 可同时写值、超链接、数字格式
append_rows 在工作表末尾追加行 nodeId, sheetId, values 当前临时禁用;不要直接调用,改用 get_sheet + update_range
find_cells 查找匹配单元格 nodeId, sheetId, text 支持正则、公式、忽略大小写、隐藏单元格等模式

关键参数规则

  1. nodeId 支持两种格式:
    • https://alidocs.dingtalk.com/i/nodes/{dentryUuid}
    • 32 位字母数字 dentryUuid
  2. sheetId 可传工作表 ID 或名称;不确定时先调 get_all_sheets
  3. range 使用 A1 表示法,如 A1:D10
  4. range 也可带工作表前缀,如 Sheet1!A1:D10 或 {sheetId}!A1:D10
  5. update_range.hyperlinks 中每个单元格可传对象或 null
  6. update_range.numberFormat 常见值:General、@、#,##0、#,##0.00、0%、yyyy/m/d

意图判断

用户说“创建一个表格 / 新建报表 / 建个在线表格”:

  • 先用 create_workspace_sheet
  • 若还要求建“汇总”“明细”等页签,再用 create_sheet

用户说“这个表格有哪些工作表 / 列一下 sheet”:

  • 用 get_all_sheets

用户说“看看这个 sheet 有多少行 / 工作表详情 / 最后有数据的行列”:

  • 用 get_sheet

用户说“读取 A1 到 D10 / 导出这个范围 / 看看整张表内容”:

  • 用 get_range
  • 如果没传 range,默认读取目标工作表全部非空数据

用户说“把这些数据写到 A1:C5 / 改单元格 / 设置百分比格式”:

  • 用 update_range
  • 先确认目标 sheetId 和 rangeAddress

用户说“在末尾追加几行 / 继续记流水 / 新增一批记录”:

  • 先用 get_sheet 读取 lastNonEmptyRow
  • 再用 update_range 写入下一段空白区域

用户说“找一下包含 XXX 的单元格 / 在公式里搜 / 忽略大小写查找”:

  • 用 find_cells

核心工作流

创建表格并新建工作表:

  1. create_workspace_sheet(name, folderId?, workspaceId?) → 提取 nodeId
  2. create_sheet(nodeId, name="汇总") → 提取新增工作表标识
  3. get_all_sheets(nodeId) → 回显当前工作表列表

读取指定范围:

  1. get_all_sheets(nodeId) → 解析 sheetId
  2. get_range(nodeId, sheetId, range="A1:D10") → 提取 values / formulas / displayValues

覆盖写入矩形区域:

  1. get_all_sheets(nodeId) → 确认目标 sheetId
  2. 组织 values 为二维数组,维度与 rangeAddress 保持一致
  3. update_range(nodeId, sheetId, rangeAddress, values, hyperlinks?, numberFormat?)

末尾追加数据:

  1. get_all_sheets(nodeId) → 确认目标 sheetId
  2. get_sheet(nodeId, sheetId) → 提取 lastNonEmptyRow
  3. 根据数据维度计算新的 rangeAddress
  4. update_range(nodeId, sheetId, rangeAddress, values) → 提取实际写入范围

上下文传递规则

操作 从返回中提取 用于
create_workspace_sheet nodeId / dentryUuid 后续所有表格操作
get_all_sheets sheetId, name get_sheet / get_range / update_range / find_cells
get_sheet 行列数、最后非空行列 判断读取范围或追加策略
get_range values, displayValues, formulas 给用户展示数据或导出本地
find_cells A1 地址列表 二次读取、定位或修复数据

CRITICAL: 参数格式

// [正确] nodeId 可传 URL 或 dentryUuid
{"nodeId": "https://alidocs.dingtalk.com/i/nodes/abc123"}
{"nodeId": "abc123"}

// [正确] rangeAddress 与 values 维度一致
{"rangeAddress": "A1:B2", "values": [["1", "2"], ["3", "4"]]}

// [错误] 2x2 数据写进 1 列范围
{"rangeAddress": "A1:A2", "values": [["1", "2"], ["3", "4"]]}

// [正确] 带工作表前缀的 range
{"range": "Sheet1!A1:D10"}

本地文件脚本说明

scripts/ 目录中的辅助脚本会处理工作区内的本地表格文件:

  • create_sheet.py:创建新的钉钉在线表格,可选追加创建一个工作表
  • import_sheet.py:读取工作区内 .csv / .tsv,创建新表格或写入已有表格
  • export_sheet.py:把钉钉表格指定工作表或范围导出为本地 .csv / .tsv

这些脚本都受以下规则约束:

  • 仅允许访问工作区内路径
  • 使用 resolve_safe_path() 防止目录遍历
  • 限制文件大小、行列规模和扩展名
  • 仅通过 mcporter 调用 MCP 服务,不直接发起业务 HTTP 请求

错误处理

  1. 遇到错误:原样展示工具报错,不要编造“成功”
  2. Invalid credentials:提示用户重新配置 DINGTALK_MCP_SHEETS_URL
  3. Permission denied:提示用户确认目标表格或目标位置权限
  4. “找不到工作表”:先 get_all_sheets,再根据名称或 ID 重试
  5. “维度不匹配”:检查 rangeAddress 与 values / hyperlinks 的行列数
  6. “跨组织不支持”:提示用户改为同组织内文档再操作

详细参考(按需读取)

  • references/api-reference.md -- 真实工具入参与典型返回说明
  • references/error-codes.md -- 常见错误与排查路径

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

0

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

0

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

0

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习