$npx -y skills add WecomTeam/wecom-cli --skill wecomcli-sheet企业微信在线表格(sheet)管理技能。提供在线表格的新建、内容读取、内容修改、追加行数据,以及子工作表的增删管理。适用场景:(1) 新建空白在线表格 (2) 读取表格完整内容(Markdown)(3) 读取基础信息与子表列表 (4) 读取表格子表数据 (5) 修改指定区域内容 (6) 末尾追加一行数据 (7) 添加/删除子工作表。当用户提到「企业微信表格」「企业微信在线表格」「企微 Excel 表格」,或链接形如 https://doc.weixin.qq.com/sheet/xxx 时触发该技能。注意:智能表格(/smartsheet/*)请
| 1 | # 企业微信在线表格管理 |
| 2 | |
| 3 | > `wecom-cli` 是企业微信提供的命令行程序,所有操作通过执行 `wecom-cli` 命令完成。 |
| 4 | |
| 5 | 资源型技能,负责**在线表格**(`/sheet/*`)的新建、内容读写以及子工作表管理。 |
| 6 | |
| 7 | ## 调用方式 |
| 8 | |
| 9 | 通过 `wecom-cli` 调用,品类为 `doc`: |
| 10 | |
| 11 | ```bash |
| 12 | wecom-cli doc <tool_name> '<json_params>' |
| 13 | ``` |
| 14 | |
| 15 | ## 接口路由表 |
| 16 | |
| 17 | > **硬规则**:第二列是 `references/xxx.md` 链接的,命中这一行后**先 `read` 对应 references 文件,再构造命令**。写入/读取子表数据前,先用 `sheet_get_info` 拿到目标子表的 `sheet_id`。 |
| 18 | |
| 19 | | 用户意图 | 参考位置 | |
| 20 | |---|---| |
| 21 | | 读取在线表格完整内容(Markdown 概览) | 见下方「读取完整内容」 | |
| 22 | | 读取在线表格基础信息与子表列表 | 见下方「读取基础信息」 | |
| 23 | | 从零新建在线表格(空白) | 见下方「新建在线表格」 | |
| 24 | | 修改在线表格指定区域内容 | [references/sheet-update-range-data.md](references/sheet-update-range-data.md) | |
| 25 | | 在线表格末尾追加一行数据 | [references/sheet-append-data.md](references/sheet-append-data.md) | |
| 26 | | 添加在线表格子工作表 | [references/sheet-add-sub.md](references/sheet-add-sub.md) | |
| 27 | | 删除在线表格子工作表 | [references/sheet-delete-sub.md](references/sheet-delete-sub.md) | |
| 28 | |
| 29 | ## 接口详述 |
| 30 | |
| 31 | ### 新建在线表格 |
| 32 | |
| 33 | 从零新建一篇企微**在线表格**:空白。创建成功后返回 `docid` 和 `url`。 |
| 34 | |
| 35 | **命令** |
| 36 | |
| 37 | ```bash |
| 38 | wecom-cli doc create_doc '<JSON 参数>' |
| 39 | ``` |
| 40 | |
| 41 | **参数** |
| 42 | |
| 43 | | 参数 | 类型 | 必填 | 默认值 | 说明 | |
| 44 | |---|--------|---|---|-------------| |
| 45 | | `doc_type` | int | 是 | — | 固定传 `4`(在线表格) | |
| 46 | | `doc_name` | string | 是 | — | 表格标题 | |
| 47 | |
| 48 | **注意事项** |
| 49 | |
| 50 | - 本接口仅创建**空白**在线表格,不支持携带初始内容;如需写入数据,请在创建后先用 `sheet_get_info` 拿到子表 `sheet_id`,再通过 `sheet_update_range_data` / `sheet_append_data` 写入。 |
| 51 | |
| 52 | ### 读取完整内容 |
| 53 | |
| 54 | 获取**在线表格**的完整内容数据,统一以 Markdown 格式返回。采用**异步轮询机制**:首次调用无需传 `task_id`,接口返回 `task_id`;若 `task_done` 为 `false`,需携带该 `task_id` 再次调用,直到 `task_done` 为 `true` 时返回完整内容。适合快速概览或读取整篇表格内容。 |
| 55 | |
| 56 | **命令** |
| 57 | |
| 58 | ```bash |
| 59 | wecom-cli doc get_doc_content '<JSON 参数>' |
| 60 | ``` |
| 61 | |
| 62 | **参数** |
| 63 | |
| 64 | | 字段 | 类型 | 必填 | 默认值 | 语义 | |
| 65 | |---|---|---|---|---| |
| 66 | | `docid` | string | 与 `url` 二选一 | — | 在线表格的 docid | |
| 67 | | `url` | string | 与 `docid` 二选一 | — | 在线表格的访问链接 | |
| 68 | | `type` | int | 是 | — | 内容返回格式,固定传 `2`(Markdown) | |
| 69 | | `task_id` | string | 否 | — | 任务 ID,首次不传,轮询时填上次返回的 `task_id` | |
| 70 | |
| 71 | **返回** |
| 72 | |
| 73 | | 字段 | 类型 | 说明 | |
| 74 | |---|---|---| |
| 75 | | `content` | string | `task_done` 为 `true` 时返回的完整 Markdown 内容 | |
| 76 | | `task_id` | string | 任务 ID,未完成时用于下次轮询 | |
| 77 | | `task_done` | bool | 任务是否完成,`false` 时需携带 `task_id` 继续轮询 | |
| 78 | |
| 79 | **使用规则** |
| 80 | |
| 81 | - 首次调用不传 `task_id`;若 `task_done` 为 `false`,记录 `task_id` 后携带其再次调用,直到 `task_done` 为 `true` 取 `content`。 |
| 82 | |
| 83 | ### 读取基础信息 |
| 84 | |
| 85 | 读取**在线表格**的基础信息,包括工作表列表、文档名称与访问链接。所有后续需要 `sheet_id` 的接口(`sheet_update_range_data` / `sheet_append_data` / `sheet_delete_sub`等)的 `sheet_id` 都从本接口返回的 `sheets[]` 中取。 |
| 86 | |
| 87 | **命令** |
| 88 | |
| 89 | ```bash |
| 90 | wecom-cli doc sheet_get_info '<JSON 参数>' |
| 91 | ``` |
| 92 | |
| 93 | **参数** |
| 94 | |
| 95 | | 字段 | 类型 | 必填 | 默认值 | 语义 | |
| 96 | |---|---|---|---|---| |
| 97 | | `docid` | string | 与 `url` 二选一 | — | 在线表格的 docid | |
| 98 | | `url` | string | 与 `docid` 二选一 | — | 在线表格的访问链接 | |
| 99 | |
| 100 | **返回** |
| 101 | |
| 102 | | 字段 | 类型 | 说明 | |
| 103 | |---|---|---| |
| 104 | | `sheets` | array | 工作表列表;每项含 `sheet_id` / `title` / `row_count` / `column_count` / `data_range` 等基础信息 | |
| 105 | | `url` | string | 文档访问链接 | |
| 106 | | `name` | string | 文档名称 | |
| 107 | |
| 108 | **使用规则** |
| 109 | |
| 110 | - `docid` 与 `url` 二选一,至少传其一。 |
| 111 | - **读 → 写 链路**:当需要往具体子表写内容(`sheet_update_range_data` / `sheet_append_data`)时,应先用 `get_doc_content` 读取并识别出各子表的**标题**与**具体数据**,再调用本接口拿到 `sheets[]` 中每个子表的 `sheet_id` 与行列数(`row_count` / `column_count`);通过**子表标题与 `title` 匹配**确定目标 `sheet_id`,并结合行列数核对写入区域范围,从而打通「读 → 写」的完整链路。 |
| 112 | |
| 113 | ## 跨技能依赖 |
| 114 | |
| 115 | | 依赖技能 | 典型协作场景 | 数据流向 | |
| 116 | |---|---|---| |
| 117 | | `wecomcli-contact` | 表格里需要写入人员信息时按姓名查 userid | `get_userlist` 查到 userid → 本 skill 写入 | |
| 118 | | `wecomcli-msg` | 用户要求把在线表格链接发给某人/某群 | 本 skill 新建后返回 `url` → `wecomcli-msg` 发送链接 | |