wecomcli-sheet
何时用:仅当用户明确指向企业微信『在线表格』或提供 doc.weixin.qq.com/sheet/ 链接时使用;泛指做表格默认先按消歧确认,智能表格内容操作走 wecomcli-smartsheet,本地表格默认走本地工具。在线表格:新建、导入 CSV/Excel、读取信息与数据、修改内容、追加行、子表管理;文档公共操作走 wecomcli-doc-manage。
git clone --depth 1 https://github.com/Pinvou/pinvou-agent /tmp/wecomcli-sheet && cp -r /tmp/wecomcli-sheet/pinvou3-app/src-tauri/resources/common/bundle/wecom-skills/wecomcli-sheet ~/.claude/skills/wecomcli-sheetSKILL.md
# 企业微信在线表格管理
> 执行任何 `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` 链接的, 命中这一行后先用 `File(action="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` 后**继续读取子表数据是另一个接口**,命令字符串、参数名、是否分页等都没有在本节出现,**必须**先用 `File(action="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`,可直接使用,无需再提取或搜索。直出好看的网页/落地页/banner/海报/产品介绍页/数据报告/简历/作品集等视觉物料——套一套设计系统,模型自由写自包含 HTML,颜值由规则锁死、不靠模板。用户说"做个网页/页面/落地页/banner/海报/报告页/作品集/简历"或"把这份内容做成网页版"时使用。⚠️ 不含信息检索:查天气/查行情/查股价/查数据请走对应连接器,不是本技能。
【何时用:仅当用户明确指向钉钉/DingTalk(钉钉文档、钉钉日程等)时使用;泛指做文档/表格/待办/审批默认走本地工具,不要误用钉钉】用 dws CLI 管理钉钉:AI表格/AI搜问(找人首选)/目标管理(Agoal)/组织大脑/日历/通讯录/群聊与机器人消息/待办/审批/考勤/日志(日报周报)/DING消息/钉钉文档/云盘/Markdown文件/AI听记/邮箱/在线电子表格(axls)/知识库/白板/开放平台文档/个人IM与OA事件订阅。用户要求操作上述钉钉产品时使用。
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限;遇到 Base/多维表格/bitable、BaseApp/AppMode 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入转 lark-drive,认证/授权转 lark-shared。
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书日历:管理日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。不负责:查询视频会议记录(本 skill 只覆盖日程;lark-vc 技能未随包收录,可 CLI 直连,见意图路由)、待办任务(走 lark-task)。
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书云文档(Docx/Wiki)与思维笔记内容操作:读取、创建、编辑文档,插入或下载图片附件,查询或回滚历史版本。用户给出文档 URL/token(含 doubao.com 的 /docx/、/wiki/)时使用,按 URL 路径/token 而非域名路由;内嵌表格、多维表格、画板先提取 token 再切对应 skill。文档评论走 lark-drive;表格或 Base 内部数据操作不在本 skill。
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书云空间:管理 Drive 文件/文件夹,上传下载、复制移动删除、评论、权限、密级标签、版本、改标题,导入 Word/Markdown/Excel/CSV/PPTX/.base 为在线文档;doubao.com 云空间 URL 同走本 skill,不回退 WebFetch。不负责:文档内容编辑(lark-doc)、表格/Base 表内数据(lark-sheets/lark-base)、知识库节点(lark-wiki)。
【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)与卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索或创建群聊/话题群、管理标记数据、Feed 置顶与标签数据、处理卡片回调时使用。
【何时用:仅在其他 lark-* 技能遇到认证/授权/身份/配置问题时,或首次使用 lark-cli 时;泛指需求默认走本地工具】lark-cli 共享规则:首次配置(config init)、认证登录(auth login --domain/--scope,split-flow)、登录态查询与撤销(auth status/logout/whoami)、--as user/bot 身份切换、权限不足与 missing_scope 处理、JSON 输出契约与 _notice、update 更新、高风险操作审批(exit 10)。