feishu-cli-sheet 是 feishu-cli 的 sheet 子命令组中面向飞书电子表格的高级能力集合,主要用于筛选视图、筛选条件、单元格下拉菜单、图片以及批量样式的操作。这些能力此前多为 lark-cli 独占,现已补齐到 feishu-cli。
用途与范围
本技能覆盖以下四类能力:filter-view(含 condition)、dropdown、image、batch-set-style。基础读写与 V3 富文本走主命令 feishu-cli sheet / feishu-cli bitable,其余子命令可通过 feishu-cli sheet --help 查询。
前置条件
认证需要 sheets:spreadsheet scope,User Token 或 App Token 均可。命令默认走 resolveOptionalUserTokenWithFallback:已通过 feishu-cli auth login 登录时自动用 User Token;未登录或显式将 --user-access-token 留空时落回 App Token(Bot 身份)。token 与 sheet-id 来源为电子表格 URL https://xxx.feishu.cn/sheets/<token>?sheet=<sheet-id>,分别取对应值。
主要能力
一、筛选视图 filter-view(V3 API,5 命令)
提供 create、get、update、list、delete。create 时 --range 不带 sheetId 前缀会自动补全为 <sheet-id>!<range>;--filter-view-id 可选(10 位字母数字)。list 支持 -o json 输出原始 JSON。update 时 --name / --range 至少传一个。底层调用 SDK client.Sheets.SpreadsheetSheetFilterView.{Create, Query, Delete}。
二、筛选条件 filter-view condition(V3 API,5 命令)
支持给筛选视图写筛选条件,按列字母定位,不再只能创建空视图后到 Web UI 配置。含 create、get、update、delete、list。--condition-id 为列字母(如 E);--filter-type 可选 hiddenValue / number / text / color;--compare-type 如 less / beginsWith / between;--expected 为 JSON 数组(如 '["6"]')。
三、下拉菜单 dropdown(V2 dataValidation API,4 命令)
set 用于设置下拉(单个 --range),update / delete 用于多范围(--ranges,逗号分隔)。set 支持 --options(CSV 逗号分隔)或 --options-json(JSON 数组,用于含逗号的选项)、--multiple 多选、--colors 高亮(数量需与 options 一致,自动开启 highlightValidData)。update 独有 --highlight。get 输出为 JSON(JSON-only,无 text 模式),且 range 必须带 sheetId 前缀。get/update/delete 均接受 --spreadsheet-token 作为 --token 的兼容别名(set 仅 --token)。
四、浮动图片 image(7 命令)
media-upload 上传本地图片素材返回 file_token;write-image 把本地图片直接写入单元格(值类型为图片,起止单元格须相同);get 获取单个浮动图片;update 更新锚点 / 尺寸 / 偏移(仅更新显式传入字段);此外还有 add / list / delete。浮动图片(可拖动覆盖单元格)与单元格写图(write-image,图片作为单元格值)不同。
五、批量样式 batch-set-style(1 命令)
--data 为 {ranges, style} 对象的 JSON 数组,每个 range 须带 sheetId 前缀。style 字段沿用飞书 V2 styles_batch_update 原始结构(font / hAlign / vAlign / backColor / foreColor / formatter / clean 等)。底层调用 PUT /open-apis/sheets/v2/spreadsheets/{token}/styles_batch_update。
使用方式
命令通过 feishu-cli sheet filter-view / condition / dropdown / image / batch-set-style 形式调用,主要参数包括 --token(或 --spreadsheet-token)、--sheet-id、--range / --ranges、--name、--filter-view-id、--user-access-token 以及 -o json 等。
适用场景
包括为任务表添加状态下拉与颜色高亮、创建带筛选条件的高优先视图、批量清理工作表筛选视图、上传与更新浮动图片、批量设置单元格样式等。
限制与注意事项
--options 与 --options-json 互斥;dropdown 选项数量 ≤ 500 项,每个选项 ≤ 100 字符;dropdown --range 必须带 ! 前缀;--colors 长度必须等于 options 长度;--options 分隔符为英文逗号(非中文逗号)。filter-view --range 仅圈定视图作用域,不写入数据;写入受 V3 单 cell ≤ 50000 字符 / 单批 ≤ 5000 cells / 10 ranges 限制。多维表格的复杂条件仍走 feishu-cli bitable view view-filter-set。权限需要 sheets:spreadsheet。