@wecom/wecom-openclaw-plugin 2026.9.15 → 2026.10.19-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/skills/wecomcli-sheet/SKILL.md +64 -107
- package/skills/wecomcli-sheet/references/sheet-conditional-formatting.md +211 -0
- package/skills/wecomcli-sheet/references/sheet-filter.md +187 -0
- package/skills/wecomcli-sheet/references/sheet-float-image.md +248 -0
- package/skills/wecomcli-sheet/references/sheet-formulas.md +73 -0
- package/skills/wecomcli-sheet/references/sheet-history.md +125 -0
- package/skills/wecomcli-sheet/references/sheet-protection.md +180 -0
- package/skills/wecomcli-sheet/references/sheet-range-operations.md +323 -0
- package/skills/wecomcli-sheet/references/sheet-read-data.md +153 -0
- package/skills/wecomcli-sheet/references/sheet-search-replace.md +111 -0
- package/skills/wecomcli-sheet/references/sheet-structure-operations.md +416 -0
- package/skills/wecomcli-sheet/references/sheet-style.md +246 -0
- package/skills/wecomcli-sheet/references/sheet-validation.md +243 -0
- package/skills/wecomcli-sheet/references/sheet-workbook.md +271 -0
- package/skills/wecomcli-sheet/references/sheet-write-cells.md +332 -0
- package/skills/wecomcli-sheet/references/xlsx-process.md +328 -0
- package/skills/wecomcli-sheet/scripts/collect.py +868 -0
- package/skills/wecomcli-sheet/scripts/recalc.py +403 -0
- package/skills/wecomcli-sheet/references/sheet-contents-update.md +0 -49
- package/skills/wecomcli-sheet/references/sheet-ranges-get.md +0 -47
- package/skills/wecomcli-sheet/references/sheet-rows-append.md +0 -47
- package/skills/wecomcli-sheet/references/sheet-subsheets-add.md +0 -28
- package/skills/wecomcli-sheet/references/sheet-subsheets-delete.md +0 -22
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# 浮动图片处理
|
|
2
|
+
|
|
3
|
+
对**在线表格**子表中的浮动图片执行创建、替换、删除、批量插入与查询。浮动图片是悬浮在表格上的对象,通过锚点单元格定位并返回独立 `image_id`;它不同于 `sheet cells set` / `cells batchset` 中写入单元格的图片。
|
|
4
|
+
|
|
5
|
+
> **依赖关系**:`sheet` 使用子表 ID 或名称;`anchor` 使用单个纯 A1 单元格,如 `F50`,不包含子表名。图片字段使用可被文档访问的 URL。
|
|
6
|
+
|
|
7
|
+
## 图片 URL 前置转换
|
|
8
|
+
|
|
9
|
+
浮动图片的 `image` / `new_image` 字段只接受图片 URL。若源图片是本地文件或 `media_id`,先调用 `wecom-cli sheet images upload` 上传到目标文档空间,获取可用 URL。
|
|
10
|
+
|
|
11
|
+
上传本地图片时,将本地图片路径作为 string 传入 `file_path`:
|
|
12
|
+
|
|
13
|
+
### 命令
|
|
14
|
+
|
|
15
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
wecom-cli sheet images upload --json '{"file_path":"/path/to/image.png","docid":"<文档ID>"}'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
上传 `media_id` 对应的图片时:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
wecom-cli sheet images upload --json '{"media_id":"<media_id>","docid":"<文档ID>"}'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**入参:**
|
|
28
|
+
|
|
29
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
30
|
+
|---|---|---|-----------------------------------------------------------------------|
|
|
31
|
+
| `docid` | string | 是 | 目标在线表格文档 ID |
|
|
32
|
+
| `file_path` | string | 条件必填 | 本地图片路径;与 `media_id` 二选一 |
|
|
33
|
+
| `media_id` | string | 条件必填 | 媒体文件 ID,来自用户消息或 `wecomcli-media` 技能的 `media upload`;与 `file_path` 二选一 |
|
|
34
|
+
|
|
35
|
+
**出参:**
|
|
36
|
+
|
|
37
|
+
| 字段 | 类型 | 说明 |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `url` | string | 上传后的文件访问 URL;填入 `float image set` 的 `image` 或 `float image update` 的 `new_image` |
|
|
40
|
+
|
|
41
|
+
> `file_path` 与 `media_id` 不能同时传入。不要把本地路径或 `media_id` 直接填进 `image` / `new_image`。
|
|
42
|
+
|
|
43
|
+
## 使用场景
|
|
44
|
+
|
|
45
|
+
| 操作需求 | CLI | 说明 |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| 在指定位置新增一张浮动图片 | `sheet float image set` | 返回 `image_id`,用于后续替换或删除 |
|
|
48
|
+
| 替换已有浮动图片的图片内容 | `sheet float image update` | 按 `image_id` 替换为 `new_image` |
|
|
49
|
+
| 删除一张浮动图片 | `sheet float image delete` | 按 `image_id` 删除 |
|
|
50
|
+
| 一次插入多张浮动图片 | `sheet float image batchset` | 每张图独立指定 `image`、`anchor`、尺寸 |
|
|
51
|
+
| 查询子表浮动图片 | `sheet float image list` | 获取 `image_id`、锚点和尺寸 |
|
|
52
|
+
|
|
53
|
+
## 定位前置检查
|
|
54
|
+
|
|
55
|
+
1. 先确认目标 `docid` 和 `sheet`;用户只给工作簿名时,先通过文档搜索或工作簿信息定位。
|
|
56
|
+
2. 用户描述“放到某列旁边”“放到数据末尾”时,先读取表头或当前数据范围,推导单个 A1 锚点。
|
|
57
|
+
3. 更新或删除前先调用 `float image list` 获取 `image_id`,不要按锚点或返回顺序盲改。
|
|
58
|
+
4. 如果用户要求图片作为记录字段参与排序、筛选或数据处理,优先使用 `sheet-write-cells.md` 的单元格图片能力,不用浮动图片。
|
|
59
|
+
|
|
60
|
+
## 创建浮动图片 — `wecom-cli sheet float image set`
|
|
61
|
+
|
|
62
|
+
### 命令
|
|
63
|
+
|
|
64
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
wecom-cli sheet float image set --json '<JSON 参数>'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 参数
|
|
71
|
+
|
|
72
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
73
|
+
|---|---|---|---|---|
|
|
74
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
75
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称 |
|
|
76
|
+
| `image` | string | 是 | — | 图片 URL;若源图片是本地路径或 `media_id`,先通过 `images upload` 换取 URL |
|
|
77
|
+
| `anchor` | string | 是 | — | 图片锚点单元格,纯 A1,如 `F50` |
|
|
78
|
+
| `width` | int | 否 | — | 图片显示宽度,单位 px |
|
|
79
|
+
| `height` | int | 否 | — | 图片显示高度,单位 px |
|
|
80
|
+
|
|
81
|
+
### 返回
|
|
82
|
+
|
|
83
|
+
| 字段 | 类型 | 说明 |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| `anchor` | string | 实际锚点单元格,纯 A1 |
|
|
86
|
+
| `image_id` | string | 新建浮动图片 ID;后续更新 / 删除使用 |
|
|
87
|
+
|
|
88
|
+
### 示例
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
wecom-cli sheet float image set --json '{"docid":"e3_AHsALgbHACcCN1HvTa5u7SFefia8Y","sheet":"数据","image":"https://wdoc-76491.picgzc.qpic.cn/x3WIu_1764596460","anchor":"F50","width":320,"height":240}'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 使用规则
|
|
95
|
+
|
|
96
|
+
- **锚点是单格**:`anchor` 传 `F50` 这类单个单元格,不要传 `F50:H60`。
|
|
97
|
+
- **保存 `image_id`**:创建成功后记录返回 ID;替换和删除都依赖它。
|
|
98
|
+
- **尽量保持原比例**:如果上传返回的图片 URL 带有 `w` / `h` 参数,或已知原图像素尺寸,指定 `width` / `height` 时优先按原图宽高比换算,避免拉伸变形。用户明确指定宽高时以用户要求为准。
|
|
99
|
+
|
|
100
|
+
## 更新浮动图片 — `wecom-cli sheet float image update`
|
|
101
|
+
|
|
102
|
+
### 命令
|
|
103
|
+
|
|
104
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
wecom-cli sheet float image update --json '<JSON 参数>'
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 参数
|
|
111
|
+
|
|
112
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
113
|
+
|---|---|---|---|---|
|
|
114
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
115
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称 |
|
|
116
|
+
| `image_id` | string | 是 | — | 要替换的浮动图片 ID |
|
|
117
|
+
| `new_image` | string | 是 | — | 新图片 URL;若源图片是本地路径或 `media_id`,先通过 `images upload` 换取 URL |
|
|
118
|
+
|
|
119
|
+
### 返回
|
|
120
|
+
|
|
121
|
+
| 字段 | 类型 | 说明 |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| `image_id` | string | 被更新的浮动图片 ID |
|
|
124
|
+
|
|
125
|
+
### 示例
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
wecom-cli sheet float image update --json '{"docid":"e3_AHsALgbHACcCN1HvTa5u7SFefia8Y","sheet":"数据","image_id":"1106075089","new_image":"https://wdoc-76491.picgzc.qpic.cn/6ddbdae8f"}'
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 使用规则
|
|
132
|
+
|
|
133
|
+
- **只替换图片内容**:当前开放字段只包含 `new_image`,不要在 update 中同时尝试移动锚点或改尺寸。
|
|
134
|
+
- **先 list 再改**:用户只说“替换 F50 那张图”时,先用 `float image list` 找到对应 `image_id`。
|
|
135
|
+
|
|
136
|
+
## 删除浮动图片 — `wecom-cli sheet float image delete`
|
|
137
|
+
|
|
138
|
+
### 命令
|
|
139
|
+
|
|
140
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
wecom-cli sheet float image delete --json '<JSON 参数>'
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 参数
|
|
147
|
+
|
|
148
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
149
|
+
|---|---|---|---|---|
|
|
150
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
151
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称 |
|
|
152
|
+
| `image_id` | string | 是 | — | 要删除的浮动图片 ID |
|
|
153
|
+
|
|
154
|
+
### 返回
|
|
155
|
+
|
|
156
|
+
| 字段 | 类型 | 说明 |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| `image_id` | string | 已删除的浮动图片 ID |
|
|
159
|
+
|
|
160
|
+
### 使用规则
|
|
161
|
+
|
|
162
|
+
- **按 ID 删除**:删除前先 `float image list` 核对图片锚点和 `image_id`。
|
|
163
|
+
|
|
164
|
+
## 批量插入浮动图片 — `wecom-cli sheet float image batchset`
|
|
165
|
+
|
|
166
|
+
### 命令
|
|
167
|
+
|
|
168
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
wecom-cli sheet float image batchset --json '<JSON 参数>'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 参数
|
|
175
|
+
|
|
176
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
177
|
+
|---|---|---|---|---|
|
|
178
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
179
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称 |
|
|
180
|
+
| `images` | array | 是 | — | 要插入的图片数组,元素结构见下方 `images[]` |
|
|
181
|
+
|
|
182
|
+
`images[]` 对象结构:
|
|
183
|
+
|
|
184
|
+
| 子字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
185
|
+
|---|---|---|---|---|
|
|
186
|
+
| `image` | string | 是 | — | 图片 URL;若源图片是本地路径或 `media_id`,先通过 `images upload` 换取 URL |
|
|
187
|
+
| `anchor` | string | 是 | — | 图片锚点单元格,纯 A1,如 `H2` |
|
|
188
|
+
| `width` | int | 否 | — | 图片显示宽度,单位 px |
|
|
189
|
+
| `height` | int | 否 | — | 图片显示高度,单位 px |
|
|
190
|
+
|
|
191
|
+
### 返回
|
|
192
|
+
|
|
193
|
+
| 字段 | 类型 | 说明 |
|
|
194
|
+
|---|---|---|
|
|
195
|
+
| `results` | array | 批量插入结果数组 |
|
|
196
|
+
| `results[].anchor` | string | 实际锚点单元格,纯 A1 |
|
|
197
|
+
| `results[].image_id` | string | 新建浮动图片 ID |
|
|
198
|
+
|
|
199
|
+
### 示例
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
wecom-cli sheet float image batchset --json '{"docid":"e3_AHsALgbHACcCN1HvTa5u7SFefia8Y","sheet":"数据","images":[{"image":"https://wdoc-76491.picgzc.qpic.cn/Iu_1764596460","anchor":"H2","width":200,"height":150},{"image":"https://wdoc-76491.picgzc.qpic.cn/b6ddbdae8f","anchor":"H10","width":200,"height":150}]}'
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### 使用规则
|
|
206
|
+
|
|
207
|
+
- **逐项指定锚点**:每张图片都必须有自己的 `anchor`;不要用一个起始位置让后端自动排布。
|
|
208
|
+
- **尽量保持原比例**:如果上传返回的图片 URL 带有 `w` / `h` 参数,或已知原图像素尺寸,逐张按原图宽高比设置显示尺寸;用户明确指定宽高时以用户要求为准。
|
|
209
|
+
- **批量后保存映射**:保留 `anchor` 到 `image_id` 的映射,便于后续替换或删除。
|
|
210
|
+
- **失败项单独处理**:若回包出现部分失败,按失败项单独重试或向用户说明。
|
|
211
|
+
|
|
212
|
+
## 查询浮动图片 — `wecom-cli sheet float image list`
|
|
213
|
+
|
|
214
|
+
### 命令
|
|
215
|
+
|
|
216
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
wecom-cli sheet float image list --json '<JSON 参数>'
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 参数
|
|
223
|
+
|
|
224
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
225
|
+
|---|---|---|---|---|
|
|
226
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
227
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称 |
|
|
228
|
+
|
|
229
|
+
### 返回
|
|
230
|
+
|
|
231
|
+
| 字段 | 类型 | 说明 |
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| `images` | array | 子表中的浮动图片列表 |
|
|
234
|
+
| `images[].image_id` | string | 浮动图片 ID |
|
|
235
|
+
| `images[].anchor` | string | 图片锚点单元格,纯 A1 |
|
|
236
|
+
| `images[].width` | int | 图片宽度,单位 px |
|
|
237
|
+
| `images[].height` | int | 图片高度,单位 px |
|
|
238
|
+
|
|
239
|
+
### 使用规则
|
|
240
|
+
|
|
241
|
+
- **用于定位对象**:更新和删除都先 list,确认 `image_id`、锚点和尺寸。
|
|
242
|
+
- **锚点可能不唯一**:同一锚点可能有多张图片时,结合尺寸、创建上下文或用户描述消歧。
|
|
243
|
+
- **宽高单位统一**:`set` / `batchset` / `list` 的 `width`、`height` 均按 px 理解。
|
|
244
|
+
|
|
245
|
+
## 能力边界
|
|
246
|
+
|
|
247
|
+
- 当前 reference 只开放用户表格中列出的字段;不支持移动已有浮动图片、调整已有浮动图片尺寸、分页查询或按区域过滤。
|
|
248
|
+
- 浮动图片通过锚点单元格定位,适合做子表上的悬浮展示对象。需要图片作为单元格内容写入,或需要明确绑定某条记录并按单元格数据处理时,使用 `sheet-write-cells.md` 的单元格图片能力。
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 公式预计算
|
|
2
|
+
|
|
3
|
+
对**在线表格**中的公式进行批量试算并返回结果,不修改文档内容。适用于写入公式前的预计算、校验公式语义、检查相对引用在指定锚点下的结果,以及确认数组公式展开结果。
|
|
4
|
+
|
|
5
|
+
> **依赖关系**:`sheet` 使用子表 ID 或名称;公式必须以 `=` 开头;`anchor` 使用单个纯 A1 单元格,不包含子表名。
|
|
6
|
+
|
|
7
|
+
## 使用场景
|
|
8
|
+
|
|
9
|
+
| 操作需求 | CLI | 说明 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| 写入前试算公式 | `sheet formulas calculate` | 不落盘,只返回公式结果 |
|
|
12
|
+
| 批量校验公式是否报错 | `sheet formulas calculate` | 通过 `errors`、`eval_error` 和 `cells[].is_error` 判断 |
|
|
13
|
+
|
|
14
|
+
## 试算公式
|
|
15
|
+
|
|
16
|
+
### 命令
|
|
17
|
+
|
|
18
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
wecom-cli sheet formulas calculate --json '<JSON 参数>'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 参数
|
|
25
|
+
|
|
26
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
27
|
+
|---|---|---|---|---|
|
|
28
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL,仅支持 sheet 类型文档 |
|
|
29
|
+
| `sheet` | string | 是 | — | 默认子表 ID 或名称;优先按 ID 匹配,未命中按名称匹配 |
|
|
30
|
+
| `formulas` | array | 是 | — | 待试算公式数组,单次 1-100 条;元素结构见下方 `formulas[]` |
|
|
31
|
+
|
|
32
|
+
`formulas[]` 对象结构:
|
|
33
|
+
|
|
34
|
+
| 子字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
35
|
+
|---|---|---|---|---|
|
|
36
|
+
| `formula` | string | 是 | — | 公式原文,必须以 `=` 开头,如 `=SUM(A1:A10)` |
|
|
37
|
+
| `anchor` | string | 否 | `A1` | 相对引用的锚点单元格,纯 A1;不传时按 `A1` 计算 |
|
|
38
|
+
| `sheet` | string | 否 | 请求级 `sheet` | 子表 ID 或名称 |
|
|
39
|
+
|
|
40
|
+
### 返回
|
|
41
|
+
|
|
42
|
+
| 字段 | 类型 | 说明 |
|
|
43
|
+
|---|---|--------------------------------------------|
|
|
44
|
+
| `total` | int | 请求公式总数 |
|
|
45
|
+
| `errors` | int | 计算失败的公式条数 |
|
|
46
|
+
| `results` | array | 逐条结果,与请求 `formulas` 顺序一致 |
|
|
47
|
+
| `results[].index` | int32 | 对应请求 `formulas` 的下标,从 0 开始 |
|
|
48
|
+
| `results[].sheet_id` | string | 实际使用的子表 ID |
|
|
49
|
+
| `results[].anchor` | string | 实际使用的锚点单元格 A1 |
|
|
50
|
+
| `results[].cells` | array | 结果单元格;数组公式会展开为多个单元格 |
|
|
51
|
+
| `results[].cells[].address` | string | 结果单元格 A1 地址 |
|
|
52
|
+
| `results[].cells[].value` | string / number / bool / null | 计算值;公式错误时为错误码字符串 |
|
|
53
|
+
| `results[].cells[].is_error` | bool | `true` 表示 `value` 为公式错误码,如 `#REF!`、`#DIV/0!` |
|
|
54
|
+
| `results[].eval_error` | string | 整条公式无法评估(语法错误、sheet 不存在等) |
|
|
55
|
+
|
|
56
|
+
### 示例
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
wecom-cli sheet formulas calculate --json '{"docid":"DOCID_EXAMPLE","sheet":"Sheet1","formulas":[{"formula":"=1+2"}]}'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 使用规则
|
|
63
|
+
|
|
64
|
+
- **不修改文档**:本命令只试算公式,不写入单元格。用户要把公式真正写进表格时,使用 `sheet-write-cells.md` 中的 `cells set` 或 `cells batchset`。
|
|
65
|
+
- **公式必须带等号**:`formula` 必须以 `=` 开头;不要传裸表达式 `1+2`。
|
|
66
|
+
- **批量上限**:单次 `formulas` 数组为 1-100 条;超过 100 条时分批调用,并按 `index` 对回原请求顺序。
|
|
67
|
+
- **相对引用看锚点**:未传 `anchor` 时按 `A1` 计算;公式包含相对引用时,按用户目标单元格或计划写入位置设置 `anchor`。
|
|
68
|
+
- **错误分两类**:`eval_error` 表示条目级计算失败;`cells[].is_error=true` 表示公式成功计算但结果是公式错误码。
|
|
69
|
+
|
|
70
|
+
## 能力边界
|
|
71
|
+
|
|
72
|
+
- 本接口不创建、修改或保存公式;只用于预计算和校验。
|
|
73
|
+
- 不返回依赖单元格清单或完整计算链路。
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# 版本历史管理
|
|
2
|
+
|
|
3
|
+
查询**在线表格工作簿级别**的当前版本号与历史版本,并将整个工作簿还原到指定历史版本。
|
|
4
|
+
|
|
5
|
+
| 命令 | 风险 | 用途 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `wecom-cli sheet version get` | 只读 | 获取当前文档版本号 |
|
|
8
|
+
| `wecom-cli sheet version list` | 只读 | 查询文档历史版本 |
|
|
9
|
+
| `wecom-cli sheet version rollback` | 高风险写入 | 将整个工作簿还原到指定历史版本,并生成一个新版本 |
|
|
10
|
+
|
|
11
|
+
## 通用规则
|
|
12
|
+
|
|
13
|
+
- **版本作用于整个工作簿**:版本查询与回滚均以 `docid` 为操作对象,不能只回滚某个子表或单元格区域。
|
|
14
|
+
- **先查询再回滚**:执行回滚前,先调用 `version get` 获取当前版本,再调用 `version list` 确认目标版本确实存在,并向用户说明当前版本与目标版本。
|
|
15
|
+
- **明确目标版本**:用户未指定版本号、版本号不存在或存在多个语义候选时,先列出历史版本供用户选择,禁止猜测。
|
|
16
|
+
- **回滚会生成新版本**:回滚不会把当前版本号直接改成目标历史版本号,而是以目标版本内容生成一个新的当前版本。
|
|
17
|
+
|
|
18
|
+
## 获取当前版本号
|
|
19
|
+
|
|
20
|
+
获取指定在线表格当前的文档版本号。
|
|
21
|
+
|
|
22
|
+
### 命令
|
|
23
|
+
|
|
24
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
wecom-cli sheet version get --json '<JSON 参数>'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 参数
|
|
31
|
+
|
|
32
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
| `docid` | string | 是 | — | 在线表格 ID 或 URL |
|
|
35
|
+
|
|
36
|
+
### 返回
|
|
37
|
+
|
|
38
|
+
| 字段 | 类型 | 说明 |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| `version` | int | 当前文档版本号 |
|
|
41
|
+
|
|
42
|
+
### 使用规则
|
|
43
|
+
|
|
44
|
+
- 回滚前必须读取当前版本号,用于确认操作起点。
|
|
45
|
+
- 回滚后再次调用本接口;返回版本号应与回滚响应中的 `new_version` 一致。
|
|
46
|
+
|
|
47
|
+
## 查询历史版本
|
|
48
|
+
|
|
49
|
+
分页查询指定在线表格的历史版本,返回版本号、修改时间和修改人。
|
|
50
|
+
|
|
51
|
+
### 命令
|
|
52
|
+
|
|
53
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
wecom-cli sheet version list --json '<JSON 参数>'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 参数
|
|
60
|
+
|
|
61
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
62
|
+
|---|---|---|---|-------------------------------------|
|
|
63
|
+
| `docid` | string | 是 | — | 在线表格 ID 或 URL |
|
|
64
|
+
| `limit` | int | 否 | — | 单页返回数量 |
|
|
65
|
+
| `cursor` | string | 否 | `""` | 分页游标;首次传空字符串,后续传上一页返回的 `next_cursor` |
|
|
66
|
+
|
|
67
|
+
### 返回
|
|
68
|
+
|
|
69
|
+
| 字段 | 类型 | 说明 |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| `versions` | object[] | 历史版本列表 |
|
|
72
|
+
| `versions[].version` | int | 历史版本号 |
|
|
73
|
+
| `versions[].modify_time` | string | 该版本的修改时间,格式示例:`2026-09-21 20:00:00` |
|
|
74
|
+
| `versions[].modifier` | string | 该版本的修改人名称 |
|
|
75
|
+
| `note` | string | 接口提示信息 |
|
|
76
|
+
| `next_cursor` | string | 下一页游标;为空字符串时表示没有下一页 |
|
|
77
|
+
|
|
78
|
+
### 示例
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
wecom-cli sheet version list --json '{"docid":"DOCID_EXAMPLE","limit":20,"cursor":""}'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 使用规则
|
|
85
|
+
|
|
86
|
+
- **按游标翻页**:只要 `next_cursor` 非空,就把它作为下一次请求的 `cursor` 继续查询;`next_cursor` 为空时停止。
|
|
87
|
+
|
|
88
|
+
## 还原指定版本
|
|
89
|
+
|
|
90
|
+
将指定在线表格的全部内容还原到某个历史版本。执行后保留原版本历史,并生成一个新的当前版本。
|
|
91
|
+
|
|
92
|
+
### 命令
|
|
93
|
+
|
|
94
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
wecom-cli sheet version rollback --json '<JSON 参数>'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 参数
|
|
101
|
+
|
|
102
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
103
|
+
|---|---|---|---|---|
|
|
104
|
+
| `docid` | string | 是 | — | 在线表格 ID 或 URL |
|
|
105
|
+
| `version` | int | 是 | — | 要还原到的历史版本号;必须来自 `version list` 的实际返回 |
|
|
106
|
+
| `yes` | bool | 是 | — | 回滚确认;必须显式传 `true` |
|
|
107
|
+
|
|
108
|
+
### 返回
|
|
109
|
+
|
|
110
|
+
| 字段 | 类型 | 说明 |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| `previous_version` | int | 回滚前的当前版本号 |
|
|
113
|
+
| `new_version` | int | 回滚操作生成的新版本号 |
|
|
114
|
+
| `rollback_to` | int | 本次还原所依据的历史版本号 |
|
|
115
|
+
|
|
116
|
+
### 示例
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
wecom-cli sheet version rollback --json '{"docid":"DOCID_EXAMPLE","version":12,"yes":true}'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 使用规则
|
|
123
|
+
|
|
124
|
+
- **高风险操作**:回滚影响整个工作簿。只有用户明确要求把目标文档回滚到具体版本时,才传 `"yes":true`;仅要求“看看历史版本”时不得回滚。
|
|
125
|
+
- **响应一致性检查**:确认 `previous_version` 等于回滚前 `version get` 的结果,`rollback_to` 等于用户指定版本,且 `new_version` 为回滚后 `version get` 返回的当前版本。
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# 保护区域管理
|
|
2
|
+
|
|
3
|
+
对**在线表格**中的保护区域执行新增、查询、更新、删除。用户要求“锁定表头 / 保护公式区 / 限制别人编辑某块区域”时,优先使用本文件中的真实保护能力,禁止用静态样式、提示文字或隐藏列来冒充权限控制。
|
|
4
|
+
|
|
5
|
+
本文覆盖以下 CLI:
|
|
6
|
+
|
|
7
|
+
| 命令 | 风险 | 用途 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `wecom-cli sheet protects add` | 结构写入 | 新增受保护区域 |
|
|
10
|
+
| `wecom-cli sheet protects update` | 高风险写入 | 按 ID 修改保护区域范围 |
|
|
11
|
+
| `wecom-cli sheet protects delete` | 高风险写入 | 按 ID 删除保护区域 |
|
|
12
|
+
| `wecom-cli sheet protects list` | 只读 | 查询子表内保护区域清单 |
|
|
13
|
+
|
|
14
|
+
> **适用边界**:仅支持普通 `sheet` 类型子表,不支持智能表。`sheet` 使用子表 ID 或名称;`range` 一律使用纯 A1,不包含子表名。
|
|
15
|
+
|
|
16
|
+
> **通用口径**:结构性写入可先传 `dry_run: true` 预览,预览不代表已经执行。更新和删除保护区域必须显式传 `yes: true`。
|
|
17
|
+
|
|
18
|
+
## 新增保护区域 — `wecom-cli sheet protects add`
|
|
19
|
+
|
|
20
|
+
新增一个受保护区域。当前 CLI 要求显式传入 `range`。
|
|
21
|
+
|
|
22
|
+
### 命令
|
|
23
|
+
|
|
24
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
wecom-cli sheet protects add --json '<JSON 参数>'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 参数
|
|
31
|
+
|
|
32
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
35
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称,必须是普通 `sheet` 类型 |
|
|
36
|
+
| `range` | string | 是 | — | 保护区域,纯 A1,如 `A1:C1` |
|
|
37
|
+
| `name` | string | 否 | — | 保护区域备注名 |
|
|
38
|
+
| `dry_run` | bool | 否 | `false` | `true` 时仅预览,不落盘 |
|
|
39
|
+
|
|
40
|
+
### 返回
|
|
41
|
+
|
|
42
|
+
| 字段 | 类型 | 说明 |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `protect_range_id` | string | 新保护区域 ID;后续 `protects update` / `protects delete` 使用 |
|
|
45
|
+
| `range` | string | 实际生效区域,纯 A1 |
|
|
46
|
+
|
|
47
|
+
### 示例
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
wecom-cli sheet protects add --json '{"docid":"e3_ABC123","sheet":"销售","range":"A1:C1","name":"表头保护","dry_run":true}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 使用规则
|
|
54
|
+
|
|
55
|
+
- **必须传范围**:实测省略 `range` 会返回“字段 'range' 必填且不能为空”。当前 CLI 不支持通过省略 `range` 来保护整张子表;若用户要求整表保护,应先确认可用范围再传显式 A1 区域。
|
|
56
|
+
|
|
57
|
+
## 更新保护区域 — `wecom-cli sheet protects update`
|
|
58
|
+
|
|
59
|
+
按 `protect_range_id` 修改保护范围。`range` 是替换语义,不是增量扩展。
|
|
60
|
+
|
|
61
|
+
### 命令
|
|
62
|
+
|
|
63
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
wecom-cli sheet protects update --json '<JSON 参数>'
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 参数
|
|
70
|
+
|
|
71
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
72
|
+
|---|---|---|---|---|
|
|
73
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
74
|
+
| `sheet` | string | 是 | — | 保护区域所在子表 ID 或名称 |
|
|
75
|
+
| `protect_range_id` | string | 是 | — | 目标保护区域 ID;由 `protects add` / `protects list` 获得 |
|
|
76
|
+
| `range` | string | 是 | — | 新保护区域,纯 A1,替换原范围 |
|
|
77
|
+
| `yes` | bool | 是 | — | 确认执行;必须显式传 `true` |
|
|
78
|
+
| `dry_run` | bool | 否 | `false` | `true` 时仅预览,不落盘 |
|
|
79
|
+
|
|
80
|
+
### 返回
|
|
81
|
+
|
|
82
|
+
| 字段 | 类型 | 说明 |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `protect_range_id` | string | 保护区域 ID |
|
|
85
|
+
| `range` | string | 更新后区域,纯 A1 |
|
|
86
|
+
|
|
87
|
+
### 示例
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
wecom-cli sheet protects update --json '{"docid":"e3_ABC123","sheet":"销售","protect_range_id":"protect_001","range":"A1:D1","yes":true,"dry_run":true}'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 使用规则
|
|
94
|
+
|
|
95
|
+
- **先 list 再改**:更新前调用 `protects list` 定位 `protect_range_id`,不要根据数组位置或记忆中的旧 ID 修改。
|
|
96
|
+
- **替换语义**:新 `range` 会覆盖原保护范围。扩大或缩小保护区都可能影响协作权限,先 `dry_run` 再正式执行。
|
|
97
|
+
- **名称不能更新**:当前协议只声明修改保护范围,没有声明更新 `name` 的字段;实测额外传 `name` 会成功但被静默忽略,不要承诺可改备注名,也不要传未声明字段。
|
|
98
|
+
- **写后回读**:正式更新后再次调用 `protects list`,确认目标 ID 的区域已变更。
|
|
99
|
+
|
|
100
|
+
## 删除保护区域 — `wecom-cli sheet protects delete`
|
|
101
|
+
|
|
102
|
+
按 `protect_range_id` 删除指定保护区域。
|
|
103
|
+
|
|
104
|
+
### 命令
|
|
105
|
+
|
|
106
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
wecom-cli sheet protects delete --json '<JSON 参数>'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 参数
|
|
113
|
+
|
|
114
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
115
|
+
|---|---|---|---|---|
|
|
116
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
117
|
+
| `sheet` | string | 是 | — | 保护区域所在子表 ID 或名称 |
|
|
118
|
+
| `protect_range_id` | string | 是 | — | 目标保护区域 ID |
|
|
119
|
+
| `yes` | bool | 是 | — | 删除确认;必须显式传 `true` |
|
|
120
|
+
| `dry_run` | bool | 否 | `false` | `true` 时仅预览,不落盘 |
|
|
121
|
+
|
|
122
|
+
### 返回
|
|
123
|
+
|
|
124
|
+
| 字段 | 类型 | 说明 |
|
|
125
|
+
|---|---|---|
|
|
126
|
+
| `protect_range_id` | string | 已删除的保护区域 ID |
|
|
127
|
+
|
|
128
|
+
### 示例
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
wecom-cli sheet protects delete --json '{"docid":"e3_ABC123","sheet":"销售","protect_range_id":"protect_001","yes":true,"dry_run":true}'
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 使用规则
|
|
135
|
+
|
|
136
|
+
- **删除不可逆**:先调用 `protects list` 核对目标 ID 与范围,再传 `dry_run: true` 预览。
|
|
137
|
+
- **禁止按区域盲删**:若多个保护区域范围相近或相交,应列出候选让用户确认,最终按稳定 `protect_range_id` 删除。
|
|
138
|
+
|
|
139
|
+
## 查询保护区域 — `wecom-cli sheet protects list`
|
|
140
|
+
|
|
141
|
+
列出指定子表中的全部保护区域。
|
|
142
|
+
|
|
143
|
+
### 命令
|
|
144
|
+
|
|
145
|
+
使用 wecom-cli 工具按照下面格式调用
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
wecom-cli sheet protects list --json '<JSON 参数>'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 参数
|
|
152
|
+
|
|
153
|
+
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|
|
154
|
+
|---|---|---|---|---|
|
|
155
|
+
| `docid` | string | 是 | — | 在线表格 ID / URL |
|
|
156
|
+
| `sheet` | string | 是 | — | 子表 ID 或名称,必须是普通 `sheet` 类型 |
|
|
157
|
+
|
|
158
|
+
### 返回
|
|
159
|
+
|
|
160
|
+
| 字段 | 类型 | 说明 |
|
|
161
|
+
|---|---|---|
|
|
162
|
+
| `protect_ranges` | array | 保护区域清单;无保护区域时当前实测可能缺失该字段 |
|
|
163
|
+
| `protect_ranges[].protect_range_id` | string | 保护区域 ID |
|
|
164
|
+
| `protect_ranges[].range` | string | 保护区域,纯 A1 |
|
|
165
|
+
|
|
166
|
+
### 示例
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
wecom-cli sheet protects list --json '{"docid":"e3_ABC123","sheet":"销售"}'
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 使用规则
|
|
173
|
+
|
|
174
|
+
- **不返回名称**:返回值没有 `name`,不能按备注名直接定位;用 `range` 辅助识别,用 `protect_range_id` 执行更新或删除。
|
|
175
|
+
- **操作前置**:更新和删除保护区域前必须先通过本命令拿到当前 ID 与范围。
|
|
176
|
+
|
|
177
|
+
## 能力边界
|
|
178
|
+
|
|
179
|
+
- 当前 CLI 不支持通过省略 `range` 创建整表保护;`protects add` 必须传显式 A1 区域。
|
|
180
|
+
- 当前协议没有声明保护区域的成员、角色、例外编辑者或密码字段;不要自行构造权限明细参数。
|