跳转到正文
报告库
用途分类 / 数据分析

Lark Sheets Skill 安全审计

作者说它能做什么(原文)

飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel 公式迁移)、金融/财务建模(DCF、三张表、预算、Sensitivity 等)等任务时使用。若用户是想按名称或关键词搜索云空间(云盘/云存储)里的表格文件,请改用 lark-drive 的 drive +search 先定位资源。当用户给出 doubao.com 的 /sheets/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域

第三方安全检查结论

先别安装或运行

已检查文件
29
发现的风险
6
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

公式失败后可未经事前同意降级为不会联动的静态值

原文依据:2 处
发现了什么

主规则允许公式试错三次后改写静态值,只要求在交付时说明;诊断文档也允许在成本过高时降级。该决定会改变用户得到的产物性质。

为什么需要注意

表格初始显示可能正确,但源数据变化后结果不会重算,预算、财务模型、汇总或决策数据会逐渐过期,用户可能在看到交付说明前已依赖这些值。

来源允许公式连续失败三次后改写为静态值,并只要求在交付说明中披露;另一处还允许因成本过高而降级。静态值不会随源数据更新,因此若用户期待公式联动,这会实质改变产物性质,而规则未要求降级前获得同意。用户可要求公式失败时暂停并确认,或明确禁止静态值回退。

SKILL.md:36来自说明文档
3. **读全再写**:批量填充 / 补齐 / 修正类任务先确认真实数据末行再写,只探前 N 行会漏写表尾(确定末行流程见 `lark-sheets-read-data`)。4. **公式优先于硬编码**:凡可由表内其它单元格推导的值(总计 / 占比 / 增长率 / 提取 / 查找)一律写公式,即使用户没说"联动 / 自动更新"——本地算好再静默写进单元格,交付的是改输入不重算的死表。提取类产出同行源列的连续原文片段(逐字保真、不跨列取材,一格含多个片段要全列出);语义判断类(无固定分隔符 / 模式可循)公式表达不了,逐行写静态值,别用固定偏移 / 通用正则硬套。输入列可能为空时公式先判空返回空(空格按 0 参与算术产出无错误码的错值,`IFERROR` 拦不住)。**写聚合公式(SUM / COUNTIF / AVERAGE 等)前先确认区间的起止两端**:起点跳过表头行、终点覆盖真实末行——漏掉末行或把表头算进计数是最常见的错值来源,且结果看着合理、不报错;写完抽查区间首尾两格确认落在数据内。写飞书公式前读 `lark-sheets-formula-translation`,落表后用 `+formula-verify` 诊断。试错 3 次仍失败可降级静态值,交付说明写明「静态值 + 失败原因 + 不随源数据更新」。5. **续写 / 扩展继承样式**:续写、补齐、复制区块、新增行列时禁止只读值只写值——原表的字体 / 字号 / 颜色、四边框、对齐、底色(含奇偶行交替)、行高列宽、合并都要一并延续到新区域,**判分与验收都按"新区域与相邻原始区域视觉一致"来看**。
查看另外 1 个位置
references/lark-sheets-formula-verify.md:52来自说明文档
2. `status='partial'` → 扫描被内部上限截断。若该公式区是关键输出,可缩小 `--range` 或拆 `--sheet-id` 续扫;否则在交付说明中标明诊断覆盖不完整。3. `status='errors_found'` 且 `compile_errors[]` 非空 → 根据 `compile_errors[].reason` 修正公式语法(飞书函数名 / 范围语法 / 引用样式),或在成本过高时降级为静态值并说明原因。4. `status='errors_found'` 且只剩运行时错误 → 按 `error_summary` 的 `samples[].formula` + `depends_on` 排查根因(零除?空值参与运算?引用越界?日期差写法?数组语义?),优先修复关键输出区。5. 同一处错误连续修复 3 次仍未通过 → 改用 `IFERROR` 包裹兜底,或退回纯值写入,并在交付说明写清不随源数据更新。
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 3 项风险
高风险

整本工作簿回滚被标为高风险,却没有纳入强制确认门禁

原文依据:5 处
发现了什么

历史回滚会用旧版本覆盖当前工作簿,文档明确称其为高风险写入;但主清单没有列出 `+history-revert`,该命令的 flag 也没有 `--yes`,示例直接执行回滚。

为什么需要注意

若代理选错版本、工作簿或误解用户意图,当前内容可能被整本覆盖;异步受理后还需要轮询,初始成功响应并不表示最终结果可控。

来源支持这一风险:整簿回滚会覆盖当前内容,且被明确称为高风险;但该命令的参数说明和执行示例都没有 `--yes`,主高风险门禁清单也未列出它。若代理直接照示例执行,用户当前工作簿可能在没有强制二次确认的情况下被整体覆盖。用户可要求作者把 `+history-revert` 纳入统一的 dry-run、影响展示和明确同意门禁。

references/lark-sheets-history.md:7来自说明文档
回滚(revert)把电子表格的当前内容覆盖回某个历史版本——这是一个**高风险写入**操作,且为**异步**:发起后立即返回受理标识,真正的回滚在后台进行,需通过状态查询轮询最终结果(进行中 / 成功 / 失败)。`+history-list` 读取版本列表以挑选目标;`+history-revert` 发起回滚;`+history-revert-status` 轮询回滚结果。若只是想拿**当前文档版本号(revision)**当作 recover / undo / `+changeset-get` 的起点锚点,直接用 `+revision-get` 更轻量。
查看另外 4 个位置
references/lark-sheets-history.md:32来自说明文档
| Shortcut | Risk | 分组 || --- | --- | --- || `+history-list` | read | 历史版本 || `+history-revert` | high-risk-write | 历史版本 || `+history-revert-status` | read | 历史版本 |
references/lark-sheets-history.md:48来自说明文档
### `+history-revert`_公共:URL/token(无 sheet 定位) · 系统:`--dry-run`_| Flag | Type | 必填 | 说明 || --- | --- | --- | --- || `--history-version-id` | string | required | 要回滚到的历史版本(取自 +history-list) |
SKILL.md:220来自说明文档
> ⚠️ **high-risk-write 命令清单(exit 10 强确认门禁)**:`+batch-update`、`+cells-clear`、`+cells-batch-clear`、`+sheet-delete`、`+dim-delete`、`+dropdown-delete`,以及各对象删除 `+chart-delete` / `+pivot-delete` / `+cond-format-delete` / `+filter-delete` / `+filter-view-delete` / `+sparkline-delete` / `+float-image-delete`。>> **审批协议**:先 `--dry-run` 预览、向用户展示将执行的操作与影响范围,**获得用户明确同意后**再在原命令追加 `--yes` 执行。未经用户同意不得带 `--yes`,也不得在 exit 10 后静默补 `--yes` 重试——那等于禁用门禁。完整协议见 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。
references/lark-sheets-history.md:81来自说明文档
### `+history-revert````bash# 回滚到指定历史版本(异步受理)lark-cli sheets +history-revert --url "https://sample.feishu.cn/sheets/SHTxxxxxx" --history-version-id "<id-from-history-list>"```
中风险

普通 CSV 写入默认覆盖,且传入的小范围不会限制实际写入区域

原文依据:3 处
发现了什么

`+csv-put` 只把位置参数当左上角锚点,实际写入会按 CSV 尺寸自动扩展,并且默认允许覆盖。它不需要高风险命令的 `--yes` 门禁。

为什么需要注意

如果生成的 CSV 多了一行或一列、转义错误导致拆列,数据可越过用户看到的目标范围并覆盖相邻单元格。

来源明确说明 `+csv-put` 的位置参数只是左上角锚点,CSV 会按自身尺寸向外扩展,并默认覆盖非空单元格;即使传入看似受限的小 range,也不会形成写入边界。文档建议 dry-run 和 `allow-overwrite=false`,但它们不是强制门禁。CSV 尺寸或锚点判断错误时可能覆盖相邻数据。用户可要求默认禁止覆盖,并在执行前展示实际 `writes_range`。

references/lark-sheets-write-cells.md:527来自说明文档
>> ⚠️ **公式内部含逗号 / 引号建议 RFC 4180 转义**:CSV 用逗号分隔字段,公式里的逗号(如 `COUNTIF(D5:D22,"及格")` 的参数分隔逗号)会被解析器当成字段分隔符,把一格拆成多格、整块二维结构压扁错位。规则:**含逗号的字段整格用双引号包裹,字段内部的引号再翻倍**:>> ```bash> # 从 G4 写一个 2 列 3 行的统计块;=COUNTIF 含逗号 + 内部引号,建议转义> lark-cli sheets +csv-put --url "..." --sheet-name "Sheet1" \>   --start-cell "G4" \>   --csv $'统计项,结果\n成绩总和,=SUM(C5:C22)\n及格人数,"=COUNTIF(D5:D22,""及格"")"'> # ↑ "=COUNTIF(D5:D22,""及格"")":外层双引号包裹整格,内部 "及格" 的引号翻倍成 ""及格""。> # 裸写 =COUNTIF(D5:D22,"及格") 会被 CSV 按逗号拆成两格、写入区域从 G4:H6 错位成 G4:K4。> ```
查看另外 2 个位置
references/lark-sheets-write-cells.md:546来自说明文档
> **定位 + 写入边界(关键,避免误覆盖)**:> - 定位用 `--start-cell`(锚点 = 左上角单元格);也接受 `--range` 别名(与 `+csv-get` / `+cells-set` 一致,传区间会自动取左上角)。> - ⚠️ `--start-cell` / `--range` **只定左上角、不限制写入大小**:CSV 从锚点按自身行列数 auto-expand 铺开。给一个"小 range"**不会**截断数据——超出部分照写,且默认覆盖。这与 `+cells-set --range`(精确矩形、`--cells` 必须与 range 同维)语义相反,别把那套心智搬过来。> - dry-run 与成功响应都回显 `writes_range`(实际落区,如 `B2:D4`):**写前先 `--dry-run` 看一眼落区**,确认不会盖到相邻数据。> - 要保护非空 cell:`--allow-overwrite=false`(落区内出现非空 cell 即报错)。
references/lark-sheets-write-cells.md:127来自说明文档
- 不要把 `cells` 写成字符串化 JSON- `+cells-set` 默认即覆盖非空 cell(`--allow-overwrite` 默认 true);若要**保护**非空 cell 不被覆盖,显式传 `--allow-overwrite=false`(遇非空 cell 报错)- 若目标区域涉及合并单元格,不要向合并区域中的非左上角单元格写入数据;如需写入,应改写合并区域左上角单元格,或先调整/取消合并区域- **构造 `range` 时行号建议基于逻辑行号**:如果之前通过 `+csv-get` 读取了数据,CSV 中被双引号包裹的多行字段(如 `"2026年3月2日\n星期一"`)是**一个单元格**,不是两行。写入时的行号建议按逻辑记录计算,不能按物理换行符计数,否则 `range` 会整体偏移导致写入到错误位置
中风险

查找替换可在省略范围时修改整张工作表,但没有强制确认门禁

原文依据:5 处
发现了什么

`+cells-replace` 被列为普通 write;`--range` 可省略且省略时作用于整表,替换为空字符串还能删除匹配内容。文档建议搜索和 dry-run,但命令本身不要求 `--yes`。

为什么需要注意

过宽关键词、错误正则或含公式替换可能一次修改大量无关单元格或公式,且文档称该副作用不可逆。

来源支持该风险,但也包含缓解措施。`+cells-replace` 是普通 write;省略 `--range` 会作用整表,空 replacement 可删除匹配文本,且没有 `--yes` 强制确认。说明要求先明确范围、搜索计数和回读,并强烈建议 dry-run,但命令仍可直接执行。宽泛关键词或正则可能批量误改。用户可限制必须显式 range,并要求预览命中数及确认后才能替换。

references/lark-sheets-search-replace.md:5来自说明文档
`+cells-replace` 的副作用是不可逆的(除非另写代码回滚)。执行前必须:1. **明确替换范围**:建议显式说明"只替换 X 列 / X 区域,还是全表替换"。避免默认全表替换——容易误改无关列。范围应由用户指令决定,模糊时主动询问。2. **dry-run 命中数量**:先用 `+cells-search` 在同一范围、同一关键词、同一匹配选项(大小写 / 精确 / 正则)下统计命中数量。把数量和**期望命中数**(用户明示的或基于业务理解推断的)对照;不一致先排查(关键词太宽?范围太大?)。3. **替换后回读校验**:执行后再次 `+cells-search` 旧关键词,预期为 0;并对替换后的若干代表性单元格回读确认值符合预期。
查看另外 4 个位置
references/lark-sheets-search-replace.md:27来自说明文档
| Shortcut | Risk | 分组 || --- | --- | --- || `+cells-search` | read | 单元格 || `+cells-replace` | write | 单元格 |
references/lark-sheets-search-replace.md:53来自说明文档
| Flag | Type | 必填 | 说明 || --- | --- | --- | --- || `--find` | string | required | 待替换文本 || `--replacement` | string | required | 替换为;传空字符串 `""` 等价于「删除内容」 || `--range` | string | optional | 替换范围(A1 格式);省略时整表 || `--match-case` | bool | optional | 大小写敏感 || `--match-entire-cell` | bool | optional | 完全匹配整个单元格 || `--regex` | bool | optional | 把 `--find` 按正则解释 || `--include-formulas` | bool | optional | 也在公式文本中替换 |
references/lark-sheets-search-replace.md:55来自说明文档
| --- | --- | --- | --- || `--find` | string | required | 待替换文本 || `--replacement` | string | required | 替换为;传空字符串 `""` 等价于「删除内容」 || `--range` | string | optional | 替换范围(A1 格式);省略时整表 || `--match-case` | bool | optional | 大小写敏感 || `--match-entire-cell` | bool | optional | 完全匹配整个单元格 || `--regex` | bool | optional | 把 `--find` 按正则解释 || `--include-formulas` | bool | optional | 也在公式文本中替换 |
references/lark-sheets-search-replace.md:105来自说明文档
> `+cells-replace` 虽然 Risk = write,但范围大或正则错可能改一堆。**强烈推荐工作流**:先 `+cells-search` 看匹配数,再 `+cells-replace --dry-run` 预览,最后真正执行。
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
中风险

写入 @人富文本时默认会向他人发送通知

原文依据:2 处
发现了什么

`mention` 的 `notify` 默认值为 true。文档说明不想通知时要显式设为 false,但没有要求代理在触发外部通知前取得明确同意。

为什么需要注意

在共享或敏感表格中,意外通知会向被提及者暴露表格活动和关联上下文,并造成无法收回的打扰。

来源明确指出写入 `mention` 富文本时,`notify` 默认是 true,会给被 @ 的人发送通知;只有显式设为 false 才避免通知。该操作会影响工作簿之外的其他用户,而文档没有要求发送前取得明确同意。风险仅在实际写入 @人富文本且未设置 false 时发生。用户可要求默认 `notify:false`,只有明确要求通知时才开启。

references/lark-sheets-write-cells.md:173来自说明文档
## 富文本单元格:超链接 / @人 / @文档(`rich_text`)带显示文本的超链接、@人、@文档这类富内容**建议**走 `+cells-set` 的 `rich_text` 字段(`cells[].rich_text` 数组,每段一个对象、带 `type`),**不能**直接传普通字符串——纯字符串只会被当作纯文本存进单元格。完整字段跑 `lark-cli sheets +cells-set --print-schema --flag-name cells`,常用段类型:- **超链接(带显示文本)**:`{"type":"link","text":"飞书","link":"https://www.feishu.cn"}`。纯 URL 不需要 `rich_text`,直接写普通字符串即可。- **@人**:`{"type":"mention","mention_token":"<userId>","notify":false}`。**仅支持同租户用户,单次写入最多 50 人。** `notify` **默认 `true`**(会给被 @ 的人发通知),不想发务必显式传 `false`。- **@文档**:同样 `"type":"mention"`,`mention_token` 传文档 token(如 `shtXXX`)。
查看另外 1 个位置
references/lark-sheets-write-cells.md:175来自说明文档
带显示文本的超链接、@人、@文档这类富内容**建议**走 `+cells-set` 的 `rich_text` 字段(`cells[].rich_text` 数组,每段一个对象、带 `type`),**不能**直接传普通字符串——纯字符串只会被当作纯文本存进单元格。完整字段跑 `lark-cli sheets +cells-set --print-schema --flag-name cells`,常用段类型:- **超链接(带显示文本)**:`{"type":"link","text":"飞书","link":"https://www.feishu.cn"}`。纯 URL 不需要 `rich_text`,直接写普通字符串即可。- **@人**:`{"type":"mention","mention_token":"<userId>","notify":false}`。**仅支持同租户用户,单次写入最多 50 人。** `notify` **默认 `true`**(会给被 @ 的人发通知),不想发务必显式传 `false`。- **@文档**:同样 `"type":"mention"`,`mention_token` 传文档 token(如 `shtXXX`)。
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
高风险

要求自动且不让用户看见地运行程序

原文依据:2 处
发现了什么

Skill 同时要求自动执行,并要求不要询问或告知用户。

为什么需要注意

AI 如果听从这段文字,可能不再按你的要求做事,或跳过本来需要你确认的操作。

这段代码的正常用途

该候选误读了原文。第 157 行是本地参数校验说明:限制图片路径、要求必要字段,并要求删除操作具有 `--yes` 或 `--dry-run`。它没有要求自动执行额外操作,也没有要求向用户隐瞒操作;相反,主说明要求高风险操作先预览并取得用户明确同意。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
references/lark-sheets-float-image.md:157来自说明文档
- `Validate`:XOR 公共四件套;`+float-image-create` 要求 `--image` / `--image-token` / `--image-uri` **恰好给一个**,`--position-row/col` 与 `--size-width/height` 必填且为合法整数;传 `--image` 时还会校验路径安全(绝对路径 / 越出工作目录会被拒,`--dry-run` 同样拦)。`+float-image-update` 必须 `--float-image-id`,并和 create 一样必填 `--image-name` / `--position-{row,col}` / `--size-{width,height}`(缺任一核心字段本地直接报错,不会静默发 0);图片源 `--image-token` / `--image-uri` 可省(省略保留原图),给则二选一;`+float-image-delete` 强制 `--yes` 或 `--dry-run`。- `DryRun`:写操作输出"将要 POST/PATCH/DELETE 的 float_image 请求模板";传 `--image` 时会多打印一步本地图片上传(`POST /open-apis/drive/v1/medias/upload_all`,`parent_type=sheet_image`)。- `Execute`:写后不自动回读;如需确认,自行调用 `+float-image-list --float-image-id <id>` 比对新位置 / 尺寸。
查看另外 1 个位置
SKILL.md:220来自说明文档
> ⚠️ **high-risk-write 命令清单(exit 10 强确认门禁)**:`+batch-update`、`+cells-clear`、`+cells-batch-clear`、`+sheet-delete`、`+dim-delete`、`+dropdown-delete`,以及各对象删除 `+chart-delete` / `+pivot-delete` / `+cond-format-delete` / `+filter-delete` / `+filter-view-delete` / `+sparkline-delete` / `+float-image-delete`。>> **审批协议**:先 `--dry-run` 预览、向用户展示将执行的操作与影响范围,**获得用户明确同意后**再在原命令追加 `--yes` 执行。未经用户同意不得带 `--yes`,也不得在 exit 10 后静默补 `--yes` 重试——那等于禁用门禁。完整协议见 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

7 个说明模块

该 Skill 的目标是读取、创建和编辑飞书电子表格,能力包括单元格、工作表结构、图表、透视表、筛选和图片,因此使用时会对指定的在线工作簿产生真实读写操作。

查看原文
SKILL.md:2来自说明文档
---name: lark-sheetsversion: 3.1.8description: "飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel 公式迁移)、金融/财务建模(DCF、三张表、预算、Sensitivity 等)等任务时使用。若用户是想按名称或关键词搜索云空间(云盘/云存储)里的表格文件,请改用 lark-drive 的 drive +search 先定位资源。当用户给出 doubao.com 的 /sheets/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。"metadata:

随附的分析脚本通过参数数组调用 `lark-cli`,限定在工作簿信息、工作表结构、单元格和图表等读取命令;可见代码没有使用 shell 字符串执行。实际认证和权限规则则被委托给未提供的 `../lark-shared/SKILL.md`,本次材料无法核验那部分。

查看原文
scripts/lark_sheet_read_cli.py:59来自代码
    cmd = ["lark-cli", "sheets", shortcut]    _append_flag(cmd, "url", url)    _append_flag(cmd, "spreadsheet_token", spreadsheet_token)    _append_flag(cmd, "sheet_id", sheet_id)    _append_flag(cmd, "sheet_name", sheet_name)    for key, value in (flags or {}).items():        _append_flag(cmd, key, value)    try:        completed = subprocess.run(            cmd,            capture_output=True,            text=True,            timeout=timeout,            check=False,        )    except FileNotFoundError as exc:
SKILL.md:14来自说明文档
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理。**

Skill 为列出的删除、清除和批量命令规定了“先 dry-run、展示影响、取得明确同意、再加 --yes”的审批流程,这是可见材料中的主要保护机制。

查看原文
SKILL.md:220来自说明文档
> ⚠️ **high-risk-write 命令清单(exit 10 强确认门禁)**:`+batch-update`、`+cells-clear`、`+cells-batch-clear`、`+sheet-delete`、`+dim-delete`、`+dropdown-delete`,以及各对象删除 `+chart-delete` / `+pivot-delete` / `+cond-format-delete` / `+filter-delete` / `+filter-view-delete` / `+sparkline-delete` / `+float-image-delete`。>> **审批协议**:先 `--dry-run` 预览、向用户展示将执行的操作与影响范围,**获得用户明确同意后**再在原命令追加 `--yes` 执行。未经用户同意不得带 `--yes`,也不得在 exit 10 后静默补 `--yes` 重试——那等于禁用门禁。完整协议见 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。

本地图片和本地工作簿可被上传或导入飞书;图片上传会使用 `sheet_image`,工作簿导入默认进入云空间根目录。用户应把这些操作视为向其飞书账户上传完整文件。

查看原文
references/lark-sheets-float-image.md:28来自说明文档
图片来源有三种方式,`+float-image-create` 上三者 **XOR、必给其一**(`--image` / `--image-token` / `--image-uri`):- **`--image <本地路径>`(首选,最省事)**:直接给本地图片文件路径(PNG/JPEG/GIF/BMP/HEIC 等)。CLI 会自动把它以 `parent_type=sheet_image` 上传,拿到 file_token 后创建浮动图,**不用你手动上传 / 取 token**。路径规则同其它本地文件 flag:必须是当前工作目录内的相对路径(绝对路径会被 Validate 拒,`--dry-run` 也会拦)。- `--image-token`:复用**已存在**的图片 file_token。常见来源:① `+float-image-list` 返回的 `image_token`(适合"换皮不换位置"复用同一张图);② `+cells-set-image` 成功返回里的 `file_token`(它也是 `sheet_image` 上传句柄)。适合"同一张图复用到多处",省去重复上传。- `--image-uri`:图片 URI(上传链路返回的句柄),**非**表内对象 reference_id;由系统自动转 file_token。
references/lark-sheets-workbook.md:168来自说明文档
### `+workbook-import`| Flag | Type | 必填 | 说明 || --- | --- | --- | --- || `--file` | string | required | 本地文件路径(.xlsx / .xls / .csv) || `--folder-token` | string | optional | 目标文件夹 token;省略则导入到云空间根目录 || `--name` | string | optional | 导入后表格名称;省略则用本地文件名(去掉扩展名) |
从这里开始 · 工作说明SKILL.md
lark-sheets
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

34 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录29 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • scripts/lark_chart_layout_check.py已纳入全文
  • scripts/lark_detect_subtables.py已纳入全文
  • scripts/lark_inspect_workbook.py已纳入全文
  • scripts/lark_profile_table.py已纳入全文
  • scripts/lark_sheet_range.py已纳入全文
  • scripts/lark_sheet_read_cli.py已纳入全文
  • scripts/sheets_df.py已纳入全文
  • references/lark-sheets-batch-update.md已纳入全文
  • references/lark-sheets-changeset.md已纳入全文
  • references/lark-sheets-chart.md已纳入全文
  • references/lark-sheets-conditional-format.md已纳入全文
  • references/lark-sheets-filter-view.md已纳入全文
  • references/lark-sheets-filter.md已纳入全文
  • references/lark-sheets-float-image.md已纳入全文
  • references/lark-sheets-formula-translation.md已纳入全文
  • references/lark-sheets-formula-verify.md已纳入全文
  • references/lark-sheets-history.md已纳入全文
  • references/lark-sheets-legacy-command-migration.md已纳入全文
  • references/lark-sheets-pivot-table.md已纳入全文
  • references/lark-sheets-range-operations.md已纳入全文
  • references/lark-sheets-read-data.md已纳入全文
  • references/lark-sheets-search-replace.md已纳入全文
  • references/lark-sheets-sheet-structure.md已纳入全文
  • references/lark-sheets-sparkline.md已纳入全文
  • references/lark-sheets-styles-put.md已纳入全文
  • references/lark-sheets-visual-standards.md已纳入全文
  • references/lark-sheets-workbook.md已纳入全文
  • references/lark-sheets-write-cells.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/lark-sheets-batch-update.md配套文件
  • references/lark-sheets-changeset.md配套文件
  • references/lark-sheets-chart.md配套文件
  • references/lark-sheets-conditional-format.md配套文件
  • references/lark-sheets-filter-view.md配套文件
  • references/lark-sheets-filter.md配套文件
  • references/lark-sheets-float-image.md配套文件
  • references/lark-sheets-formula-translation.md配套文件
  • references/lark-sheets-formula-verify.md配套文件
  • references/lark-sheets-history.md配套文件
  • references/lark-sheets-legacy-command-migration.md配套文件
  • references/lark-sheets-pivot-table.md配套文件
  • references/lark-sheets-range-operations.md配套文件
  • references/lark-sheets-read-data.md配套文件
  • references/lark-sheets-search-replace.md配套文件
  • references/lark-sheets-sheet-structure.md配套文件
  • references/lark-sheets-sparkline.md配套文件
  • references/lark-sheets-styles-put.md配套文件
  • references/lark-sheets-visual-standards.md配套文件
  • references/lark-sheets-workbook.md配套文件
  • references/lark-sheets-write-cells.md配套文件
  • scripts/lark_chart_layout_check.py脚本
  • scripts/lark_detect_subtables.py脚本
  • scripts/lark_inspect_workbook.py脚本
  • scripts/lark_profile_table.py脚本
  • scripts/lark_sheet_range.py脚本
  • scripts/lark_sheet_read_cli.py脚本
  • scripts/sheets_df.py脚本

代码和说明中提到的操作

运行命令
scripts/lark_sheet_read_cli.py:8来自代码
import jsonimport subprocessimport sys
scripts/lark_sheet_read_cli.py:68来自代码
    try:        completed = subprocess.run(            cmd,
scripts/lark_sheet_read_cli.py:77来自代码
        raise LarkCliError("lark-cli not found", cmd=cmd) from exc    except subprocess.TimeoutExpired as exc:        raise LarkCliError(f"lark-cli timed out after {timeout}s", cmd=cmd) from exc
连接外部网站
scripts/lark_chart_layout_check.py:268来自代码
def _locator(target: str) -> dict[str, str]:    return {"url": target} if target.startswith(("http://", "https://")) else {"spreadsheet_token": target}
SKILL.md:208来自说明文档
# 统一调用范式:两组定位缺一不可(占位符别原样填;表名先 +workbook-info 查)lark-cli sheets +csv-get --url "https://.../sheets/shtXXX" --sheet-name "<真实表名>" --range "A1:F30"```
references/lark-sheets-batch-update.md:166来自说明文档
```bashlark-cli sheets +batch-update --url "https://example.feishu.cn/sheets/shtXXX" --yes \  --operations @ops.json
读取了多少行
7,231
文件校验值(用于核对版本)
d2d3bb08a9e4d87e6f3a95ca8ae054272a6bbdba3867ba635d8b0e215aacfcea