Zurück zu Skills
wecomteam/wecom-cliPrüfung bestanden

SKILL DETAIL

wecomcli-sheet

wecomteam/wecom-cli/wecomcli-sheet

This skill manages WeCom online spreadsheets (sheet), including creating new spreadsheets, importing local CSV/Excel files as online spreadsheets, reading basic info and sub-sheet data, modifying specified ranges, appending rows, and adding or deleting sub-sheets. It triggers when users mention keywords like "表格", "在线表格", "excel表格", or provide a URL like https://doc.weixin.qq.com/sheet/xxx. Note: For common document operations (search, permissions, rename), use wecomcli-doc-manage; for doc document operations, use wecomcli-doc; for smart sheet CRUD, use wecomcli-smartsheet.

Installationen · 173Quelle ansehen

Installation

npx skills add https://github.com/wecomteam/wecom-cli --skill wecomcli-sheet

Skill-Dateien

SKILL.md

Zuletzt synchronisiert · 27.08.2026

references/sheet-contents-update.md
# 修改表格内容 — `wecom-cli sheet contents update`

修改**在线表格**指定区域的内容与格式,通过 `grid_data` 指定写入的起始位置与各单元格数据。

## 命令

```bash
wecom-cli sheet contents update --json '<JSON 参数>'
```

## 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |
| `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
| `grid_data` | object | 是 | — | 写入区域的数据 |
| `grid_data.start_row` | int | 是 | — | 起始行号,从 0 起 |
| `grid_data.start_column` | int | 是 | — | 起始列号,从 0 起 |
| `grid_data.rows` | array | 是 | — | 各行数据 |

`grid_data.rows[].values[]` 对象结构:

| 子字段 | 类型 | 说明 |
|---|---|---|
| `cell_value` | object | 单元格值,见下方「cell_value 类型选择」 |
| `data_type` | string | 与 `cell_value` 对应的数据类型 |
| `cell_format` | object | 单元格样式;传空对象 `{}` 表示默认样式 |

### cell_value 类型选择

| 形态 | 结构 | 适用场景 |
|---|---|---|
| `text` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
| `number` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
| `formula` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
| `link` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |

## 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `grid_data` | object | 写入的数据,结构与入参 `grid_data` 一致 |

## 使用规则

- **格式与已有内容对齐**:向已有内容的表格追加数据时,新行的样式应尽量与现有表格保持一致,避免出现字体、字号、对齐、边框、底色等风格突兀的行。
references/sheet-ranges-get.md
# 读取子表数据 — `wecom-cli sheet ranges get`

根据 `docid`、`sheet_id` 读取**在线表格**指定子表的全部数据。可通过 `mode` 参数选择返回结构化的表格数据(含格式信息),或返回 CSV(内容或文件路径)。

## 命令

```bash
wecom-cli sheet ranges get --json '<JSON 参数>'
```

## 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |
| `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
| `mode` | string | 否 | `"default"` | 返回格式选择:`"default"` 返回结构化 `grid_data`(含单元格格式);填 `"csv"` 返回 CSV(内容或文件路径) |
| `range` | string | 条件必填 | — | 当 `mode="default"` 时**必填**,表示要读取的区域,形如 `"A1:A100"`;取值可从 `sheet get` 返回的 `sheets[].data_range` 拿到。`mode="csv"` 时忽略此字段 |

### `mode` 如何选择

默认一律使用 `"default"`,包括普通的读取、查看、展示数据等场景。此时必须同时传 `range`,返回 `grid_data`(含单元格值、格式、数据类型等完整信息)。
仅当用户明确表达需要对数据做统计、计算、聚合分析(例如"求和/平均/分组统计/透视/跑数据分析"等)时,才填 `"csv"`,便于直接把数据交给计算流程。

## 返回

### `mode` 为 `"default"`(默认)

| 字段 | 类型 | 说明 |
|---|---|---|
| `grid_data` | object | 结构化表格数据,包含每个单元格的值(`cell_value`)、格式(`cell_format`,如字体、字号、颜色、对齐方式)和数据类型(`data_type`) |

### `mode` 为 `"csv"`

回包可能是以下两种形式之一(取决于数据大小):

| 字段 | 类型 | 说明 |
|---|---|---|
| `content` | string | CSV 内容(直接返回) |
| `file_path` | string | CSV 文件落盘后的绝对路径 |

## 使用规则

- `mode="csv"` 且返回 `file_path` 时:必须再用 `read` 工具读取该文件内容,才能展示给用户或继续做分析。
- `mode="csv"` 且返回 `content` 时:可直接消费,无需再次读取文件。
references/sheet-rows-append.md
# 追加一行数据 — `wecom-cli sheet rows append`

向**在线表格**的指定子工作表末尾自动追加一行数据,无需指定行号——数据将写到最末一行之后。

## 命令

```bash
wecom-cli sheet rows append --json '<JSON 参数>'
```

## 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |
| `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
| `row` | object | 是 | — | 追加的一行数据 |
| `row.values` | array | 是 | — | 单元格数组,按列顺序排列 |

`row.values[]` 对象结构:

| 子字段 | 类型 | 说明 |
|---|---|---|
| `cell_value` | object | 单元格值,见下方「cell_value 类型选择」|
| `cell_format` | object | 单元格样式;传空对象 `{}` 表示默认样式 |

### cell_value 类型选择

| 形态 | 结构 | 适用场景 |
|---|---|---|
| `text` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
| `number` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
| `formula` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
| `link` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |

## 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `row` | object | 写入的行数据,结构与入参 `row` 一致 |

## 使用规则

- **逐行写入场景**:本接口会自动定位到子表最末一行之后追加;批量写不同区域请用 `sheet contents update`。
- **格式与已有内容对齐**:向已有内容的表格追加数据时,新行的样式应尽量与现有表格保持一致,避免出现字体、字号、对齐、边框、底色等风格突兀的行。
references/sheet-subsheets-add.md
# 添加子工作表 — `wecom-cli sheet subsheets add`

向**在线表格**添加一个新的子工作表。

## 命令

```bash
wecom-cli sheet subsheets add --json '<JSON 参数>'
```

## 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |
| `sheet` | object | 是 | — | 子表信息 |
| `sheet.title` | string | 是 | — | 工作表名称 |
| `sheet.row_count` | int | 否 | — | 表格总行数 |
| `sheet.column_count` | int | 否 | — | 表格总列数 |
| `index` | int | 否 | — | 插入位置:`0` 表示插入到最后,`1` 表示插入到第一个位置 |

## 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `sheet` | object | 新增的子表信息;含 `sheet_id`(唯一标识)/ `title` / `row_count` / `column_count` / `data_range`(新建时为空) |
references/sheet-subsheets-delete.md
# 删除子工作表 — `wecom-cli sheet subsheets delete`

根据 `docid` 与 `sheet_id` 删除**在线表格**的指定子工作表。

## 命令

```bash
wecom-cli sheet subsheets delete --json '<JSON 参数>'
```

## 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |
| `sheet_id` | string | 是 | — | 要删除的工作表 ID;通过 `sheet get` 获取 |

## 返回

删除成功返回空对象。
SKILL.md
---
name: wecomcli-sheet
description: 企业微信在线表格文档管理:新建在线表格、导入 CSV/Excel 为在线表格、读取表格信息与数据、修改表格内容、追加行数据、子表管理。当用户提到'表格'、'在线表格'、'excel表格'这些关键词触发,或链接形如 https://doc.weixin.qq.com/sheet/xxx 时触发。文档公共操作请使用 wecomcli-doc-manage;doc文档操作请使用 wecomcli-doc;智能表格内容 CRUD 请使用 wecomcli-smartsheet。
metadata:
  requires:
    bins: ["wecom-cli"]
---

# 企业微信在线表格管理

> 执行任何 `wecom-cli` 命令前,必须先读取并完成 `wecomcli-shared` 技能的公共前置检查。

资源型 skill,负责在线表格(`sheet`)的新建、导入与内容读写及子表管理。

## 适用范围

### 适用

- 新建 / 导入企微在线表格
- 读取 / 修改 / 追加在线表格内容
- 添加 / 删除在线表格子表

### 不适用

- 搜索文档 / 修改文档权限 / 重命名 / 加成员 → 改用 `wecomcli-doc-manage`
- 用户给的链接是 `https://doc.weixin.qq.com/smartsheet/...` → 改用 `wecomcli-smartsheet`
- 若遇到的 `docid` 以 `s3` 开头(形如 `s3_xxxx`)→ 改用 `wecomcli-smartsheet`


## 接口路由表

> **硬规则**:第二列是 `references/xxx.md` 链接的, 命中这一行后先 `read` 对应 references 文件,再构造命令。

| 用户意图 | 参考位置 |
|---|---|
| 新建在线表格 | 见下方「新建在线表格」 |
| 导入本地 CSV / Excel 文件为企微在线表格 | 见下方「导入在线表格」 |
| 读取在线表格基础信息与子表列表 | 见下方「读取在线表格」 |
| 读取在线表格子表数据 | [references/sheet-ranges-get.md](references/sheet-ranges-get.md) |
| 修改在线表格指定区域内容 | [references/sheet-contents-update.md](references/sheet-contents-update.md) |
| 在线表格末尾追加一行数据 | [references/sheet-rows-append.md](references/sheet-rows-append.md) |
| 添加在线表格子工作表 | [references/sheet-subsheets-add.md](references/sheet-subsheets-add.md) |
| 删除在线表格子工作表 | [references/sheet-subsheets-delete.md](references/sheet-subsheets-delete.md) |

## 接口详述

### 新建在线表格

从零新建一篇企微在线表格:空白,或带初始数据(二维表格数据)。**本接口不接受任何文件路径参数**——"用本地文件建/导入"走「导入在线表格」。

#### 命令

```bash
wecom-cli sheet create --json '<JSON 参数>'
```

#### 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `doc_name` | string | 是 | — | 表格标题 |
| `grid_data` | object | 否 | — | 默认子表初始化数据;子结构见下方 |

`grid_data` 对象结构:

| 子字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `start_row` / `start_column` | int | 否 | `0` | 起始行 / 列号,从 0 起 |
| `rows` | array | 否 | — | 各行数据;每项 `values` 为单元格数组 |
| `rows[].values[].cell_value` | object | 否 | — | 单元格值,见下方「cell_value 类型选择」 |
| `rows[].values[].data_type` | string | 否 | — | 枚举:`TEXT` / `NUMBER` / `LINK` / `FORMULA` |

##### cell_value 类型选择

> 硬规则:选择 `cell_value` 形态后,必须同时把同级的 `data_type` 设置为下表对应值。

| 形态 | 对应 `data_type` | 结构 | 适用场景 |
|---|---|---|---|
| `text` | `TEXT` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
| `number` | `NUMBER` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
| `formula` | `FORMULA` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
| `link` | `LINK` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |

#### 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `docid` | string | 新建表格 ID |
| `url` | string | 表格访问链接 |

#### 使用规则

- **何时走 import 而非本接口**:用户提到具体文件路径、或明确说"导入 / 用这个文件建",一律走「导入在线表格」。

### 导入在线表格

把本地文件(`.csv` / `.xls` / `.xlsx`)导入为企微在线表格。

#### 命令

```bash
wecom-cli sheet import --json '<JSON 参数>'
```

#### 参数

| 字段          | 类型 | 必填 | 默认值 | 语义 |
|-------------|---|---|---|---|
| `file_name` | string | 是 | — | 二进制文件名(含后缀),用于业务判断源文件类型 |
| `file_path` | string | 是 | — | 源文件的本地绝对路径 |
| `passwd`    | string | 否 | — | Office 文件加密密码(若有) |

#### 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `docid` | string | 导入完成后的表格 ID |
| `url` | string | 导入完成后的访问链接 |
| `task_status` | string | 任务状态枚举,如 `succ` 成功 |

### 读取在线表格

根据 `docid` 读取**在线表格**的基础信息,包括工作表列表、文档名称与访问链接。所有后续 `sheet *` 接口的 `sheet_id` 都从本接口返回的 `sheets[]` 中取。

#### 命令

```bash
wecom-cli sheet get --json '<JSON 参数>'
```

#### 参数

| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
| `docid` | string | 是 | — | 在线表格 ID |

#### 返回

| 字段 | 类型 | 说明 |
|---|---|---|
| `sheets` | array | 工作表列表;每项含 `sheet_id` / `title` / `row_count` / `column_count` / `data_range` 等基础信息 |
| `url` | string | 文档访问链接 |
| `name` | string | 文档名称 |

#### 使用规则

- 拿到 `sheet_id` 后**继续读取子表数据是另一个接口**,命令字符串、参数名、是否分页等都没有在本节出现,**必须**先用 `read` 工具读 `references/sheet-ranges-get.md`,再据此构造命令。

## 跨技能依赖

| 依赖技能 | 典型协作场景                                                | 数据流向 |
|---|-------------------------------------------------------|---|
| `wecomcli-doc-manage` | 用户只给表格名称/关键词,需搜索获取 `docid` 后再读写表格;或需要文件级操作(改名、权限等) | `wecomcli-doc-manage` 的「搜索文档」接口 → 返回 `docid` → 本 skill 的读取/修改/追加接口|

> 必填参数缺失 / `docid` 多候选 / 新建 vs 导入等歧义场景,用简洁自然语言仅追问缺失或有歧义的信息;有候选项时在文字中列出供用户选择,不得自行猜测。

#### `docid` 使用规则

`docid`仅cli使用。
最终展示用户时,不应展示 `docid`,而是使用文档 URL:


```
[doc_name](doc_url)
```


`docid` 是文档的唯一标识符,调用任何文档内容操作技能时均需提供。禁止自造 `docid`,按以下优先级获取:

1. 从文档链接提取(优先):用户提供了企微文档 URL 时,直接从 URL 中解析。URL 格式为 `https://doc.weixin.qq.com/<type>/<docid>?scode=...`,取 `/<type>/` 后、`?` 前的部分即为 docid。
2. 通过文档搜索获取(备选):用户仅提供文档名称或关键词、未给链接时,先调用 `wecomcli-doc-manage` 搜索文档,从返回结果中取 `docid`。
3. 用户直接提供:用户明确给出了完整 `docid`,可直接使用,无需再提取或搜索。
wecomcli-sheet · Trendende Agent Skills | Mengbi