
Lark Sheets
- 387k installs
- 15.9k repo stars
- Updated July 28, 2026
- larksuite/cli
lark-sheets is a CLI skill for creating and operating Feishu spreadsheets.
About
lark-sheets enables agents to create and operate Feishu spreadsheets via CLI. It supports creating workbooks, managing sheets and row/column structure, reading and writing cells with formulas and styles, and building visualizations like charts and pivot tables.
- Create and manage Feishu spreadsheets with full row/column operations
- Read and write cells with values, formulas, styles, and comments
- Build charts, pivot tables, filters, and conditional formatting
Lark Sheets by the numbers
- 386,895 all-time installs (skills.sh)
- +13,292 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #3 of 923 Databases skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
lark-sheets capabilities & compatibility
- Use cases
- data analysis
- Runs
- Remote server
- Pricing
- Bring your own API key
npx skills add https://github.com/larksuite/cli --skill lark-sheetsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 387k |
|---|---|
| repo stars | ★ 15.9k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 28, 2026 |
| Repository | larksuite/cli ↗ |
How do you read and write Lark spreadsheets from CLI?
Create, read, and edit Feishu spreadsheets with formulas, styles, charts, and pivot tables.
Who is it for?
Agents and automation needing to create, read, or edit data in Feishu spreadsheets with formulas and visualizations.
Skip if: Developers searching cloud space by filename or keyword should use lark-doc docs +search instead of lark-sheets object commands.
When should I use this skill?
User asks to create, update, export, or batch-read Feishu/Lark spreadsheet cells via lark-cli or mentions 电子表格 operations.
What you get
Updated worksheets, appended row data, exported spreadsheet files, and structured cell reads from known spreadsheet tokens.
- updated worksheets
- exported spreadsheet files
- cell and row read results
By the numbers
- Supports import of xlsx, xls, csv files as Feishu spreadsheets
Files
sheets (v3)
CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理
快速决策
- 按标题或关键词找云空间里的表格文件,先用
lark-cli docs +search。 docs +search会直接返回SHEET结果,不要把它误解成只能搜文档 / Wiki。- 已知 spreadsheet URL / token 后,再进入
sheets +info、sheets +read、sheets +find等对象内部操作。
核心概念
文档类型与 Token
飞书开放平台中,不同类型的文档有不同的 URL 格式和 Token 处理方式。在进行文档操作(如添加评论、下载文件等)时,必须先获取正确的 file_token。
文档 URL 格式与 Token 处理
| URL 格式 | 示例 | Token 类型 | 处理方式 |
|---|---|---|---|
/docx/ | https://example.larksuite.com/docx/doxcnxxxxxxxxx | file_token | URL 路径中的 token 直接作为 file_token 使用 |
/doc/ | https://example.larksuite.com/doc/doccnxxxxxxxxx | file_token | URL 路径中的 token 直接作为 file_token 使用 |
/wiki/ | https://example.larksuite.com/wiki/wikcnxxxxxxxxx | wiki_token | ⚠️ 不能直接使用,需要先查询获取真实的 obj_token |
/sheets/ | https://example.larksuite.com/sheets/shtcnxxxxxxxxx | file_token | URL 路径中的 token 直接作为 file_token 使用 |
/drive/folder/ | https://example.larksuite.com/drive/folder/fldcnxxxx | folder_token | URL 路径中的 token 作为文件夹 token 使用 |
Wiki 链接特殊处理(关键!)
知识库链接(/wiki/TOKEN)背后可能是云文档、电子表格、多维表格等不同类型的文档。不能直接假设 URL 中的 token 就是 file_token,必须先查询实际类型和真实 token。
处理流程
1. 使用 `wiki.spaces.get_node` 查询节点信息
lark-cli wiki spaces get_node --params '{"token":"wiki_token"}'2. 从返回结果中提取关键信息
node.obj_type:文档类型(docx/doc/sheet/bitable/slides/file/mindnote)node.obj_token:真实的文档 token(用于后续操作)node.title:文档标题
3. 根据 `obj_type` 使用对应的 API
| obj_type | 说明 | 使用的 API |
|---|---|---|
docx | 新版云文档 | drive file.comments.*、docx.* |
doc | 旧版云文档 | drive file.comments.* |
sheet | 电子表格 | sheets.* |
bitable | 多维表格 | bitable.* |
slides | 幻灯片 | drive.* |
file | 文件 | drive.* |
mindnote | 思维导图 | drive.* |
查询示例
# 查询 wiki 节点
lark-cli wiki spaces get_node --params '{"token":"wiki_token"}'返回结果示例:
{
"node": {
"obj_type": "docx",
"obj_token": "xxxx",
"title": "标题",
"node_type": "origin",
"space_id": "12345678910"
}
}资源关系
Wiki Space (知识空间)
└── Wiki Node (知识库节点)
├── obj_type: docx (新版文档)
│ └── obj_token (真实文档 token)
├── obj_type: doc (旧版文档)
│ └── obj_token (真实文档 token)
├── obj_type: sheet (电子表格)
│ └── obj_token (真实文档 token)
├── obj_type: bitable (多维表格)
│ └── obj_token (真实文档 token)
└── obj_type: file/slides/mindnote
└── obj_token (真实文档 token)
Drive Folder (云空间文件夹)
└── File (文件/文档)
└── file_token (直接使用)操作流程(重要):
1. create — 创建筛选
- 用于首次创建筛选
- ⚠️ range 必须覆盖所有需要筛选的列(如 B1:E200)
- 如果已有筛选存在,再用 create 会覆盖整个筛选
2. update — 更新筛选
- 用于在已有筛选上添加/更新指定列的条件
- 只需指定 col 和 condition,不需要 range
3. delete — 删除筛选
4. get — 获取筛选状态
多列筛选示例:
创建媒体名称(B列)和情感分析(E列)的双重筛选:
# 1. 删除现有筛选(如有)
lark-cli sheets spreadsheet.sheet.filters delete \
--params '{"spreadsheet_token":"<spreadsheet_token>","sheet_id":"<sheet_id>"}'
# 2. 创建第一个筛选,range 覆盖所有要筛选的列
lark-cli sheets spreadsheet.sheet.filters create \
--params '{"spreadsheet_token":"<spreadsheet_token>","sheet_id":"<sheet_id>"}' \
--data '{"col":"B","condition":{"expected":["xx"],"filter_type":"multiValue"},"range":"<sheet_id>!B1:E200"}'
# 3. 添加第二个筛选条件
lark-cli sheets spreadsheet.sheet.filters update \
--params '{"spreadsheet_token":"<spreadsheet_token>","sheet_id":"<sheet_id>"}' \
--data '{"col":"E","condition":{"expected":["xx"],"filter_type":"multiValue"}}'常见错误:
Wrong Filter Value:筛选已存在,需要先 delete 再 createExcess Limit:update 时重复添加同一列条件
单元格数据类型
接受二维数组的 shortcut(+write/+append 的 --values、+create 的 --data)中,每个单元格值支持以下类型。公式、带文本链接、@人、@文档、下拉列表必须使用对象格式,直接传字符串会被当作纯文本存储。
| 类型 | 写入格式 | 示例 |
|---|---|---|
| 字符串 | "文本" | "hello" |
| 数字 | 数字 | 123、3.14 |
| 日期 | 数字(自 1899-12-30 起的天数,需先设单元格日期格式) | 42101 |
| 链接(纯 URL) | "URL 字符串" | "https://example.com" |
| 链接(带文本) | {"type":"url","text":"显示文本","link":"URL"} | {"type":"url","text":"飞书","link":"https://www.feishu.cn"} |
| 邮箱 | "邮箱字符串" | "user@example.com" |
| 公式 | {"type":"formula","text":"=公式"} | {"type":"formula","text":"=SUM(A1:A10)"} |
| @人 | `{"type":"mention","text":"标识","textType":"email\ | openId\ |
| @文档 | {"type":"mention","textType":"fileToken","text":"token","objType":"类型"} | {"type":"mention","textType":"fileToken","text":"shtXXX","objType":"sheet"} |
| 下拉列表 | {"type":"multipleValue","values":[值1,值2]} | {"type":"multipleValue","values":["选项A","选项B"]} |
写入公式示例:
# ✅ 正确:使用对象格式
lark-cli sheets +write --url "URL" --sheet-id "sheetId" --range "C6" \
--values '[[{"type":"formula","text":"=SUM(C2:C5)"}]]'
# ❌ 错误:直接传字符串,会被存为纯文本
lark-cli sheets +write --url "URL" --sheet-id "sheetId" --range "C6" \
--values '[["=SUM(C2:C5)"]]'公式语法参考:涉及 ARRAYFORMULA、原生数组函数、MAP/LAMBDA、日期差、Excel 公式改写等飞书特有规则时,先阅读 `references/lark-sheets-formula.md`。
限制:
- 公式支持 IMPORTRANGE 跨表引用(最多 5 层嵌套、每个工作表最多 100 个引用)
- @人仅支持同租户用户,单次最多 50 人
- 下拉列表需先配置下拉选项,否则
multipleValue写入会变成纯文本。配置方法见 `references/lark-sheets-dropdown.md#set-dropdown`。值中的字符串不能包含逗号
Shortcuts(推荐优先使用)
Shortcut 是对常用操作的高级封装(lark-cli sheets +<verb> [flags])。有 Shortcut 的操作优先使用。
Spreadsheet Management
对应参考文档:spreadsheet-management
| Shortcut | 说明 |
|---|---|
| `+create` | Create a spreadsheet (optional header row and initial data) |
| `+info` | View spreadsheet and sheet information |
| `+export` | Export a spreadsheet (async task polling + optional download) |
Sheet Management
对应参考文档:sheet-management
| Shortcut | 说明 |
|---|---|
| `+create-sheet` | Create a sheet in an existing spreadsheet |
| `+copy-sheet` | Copy a sheet within a spreadsheet |
| `+delete-sheet` | Delete a sheet from a spreadsheet |
| `+update-sheet` | Update sheet title, position, visibility, freeze, or protection |
Cell Data
对应参考文档:cell-data
| Shortcut | 说明 |
|---|---|
| `+read` | Read spreadsheet cell values |
| `+write` | Write to spreadsheet cells (overwrite mode) |
| `+append` | Append rows to a spreadsheet |
| `+find` | Find cells in a spreadsheet |
| `+replace` | Find and replace cell values |
Cell Style And Merge
对应参考文档:cell-style-and-merge
| Shortcut | 说明 |
|---|---|
| `+set-style` | Set cell style for a range |
| `+batch-set-style` | Batch set cell styles for multiple ranges |
| `+merge-cells` | Merge cells in a spreadsheet |
| `+unmerge-cells` | Unmerge (split) cells in a spreadsheet |
Cell Images
对应参考文档:cell-images
| Shortcut | 说明 |
|---|---|
| `+write-image` | Write an image into a spreadsheet cell |
Row Column Management
对应参考文档:row-column-management
| Shortcut | 说明 |
|---|---|
| `+add-dimension` | Add rows or columns at the end of a sheet |
| `+insert-dimension` | Insert rows or columns at a specified position |
| `+update-dimension` | Update row or column properties (visibility, size) |
| `+move-dimension` | Move rows or columns to a new position |
| `+delete-dimension` | Delete rows or columns |
Filter Views
对应参考文档:filter-views
| Shortcut | 说明 |
|---|---|
| `+create-filter-view` | Create a filter view |
| `+update-filter-view` | Update a filter view |
| `+list-filter-views` | List all filter views in a sheet |
| `+get-filter-view` | Get a filter view by ID |
| `+delete-filter-view` | Delete a filter view |
| `+create-filter-view-condition` | Create a filter condition on a filter view |
| `+update-filter-view-condition` | Update a filter condition |
| `+list-filter-view-conditions` | List all filter conditions of a filter view |
| `+get-filter-view-condition` | Get a filter condition by column |
| `+delete-filter-view-condition` | Delete a filter condition |
Dropdown
对应参考文档:dropdown
| Shortcut | 说明 |
|---|---|
| `+set-dropdown` | 设置下拉列表(multipleValue 写入的前置步骤) |
| `+update-dropdown` | 更新下拉列表选项 |
| `+get-dropdown` | 查询下拉列表配置 |
| `+delete-dropdown` | 删除下拉列表 |
Float Images
对应参考文档:float-images
| Shortcut | 说明 |
|---|---|
| `+media-upload` | 上传本地图片素材,返回 file_token(供 +create-float-image 使用;>20MB 自动分片) |
| `+create-float-image` | 创建浮动图片 |
| `+update-float-image` | 更新浮动图片属性 |
| `+get-float-image` | 获取浮动图片 |
| `+list-float-images` | 查询所有浮动图片 |
| `+delete-float-image` | 删除浮动图片 |
Formula
对应参考文档:formula
浮动图片相关的读接口只返回元数据(含float_image_token),不包含图片字节。要读取图片内容,用 token 调lark-cli docs +media-preview --token "<float_image_token>" --output ./image.png。
API Resources
lark-cli schema sheets.<resource>.<method> # 调用 API 前必须先查看参数结构
lark-cli sheets <resource> <method> [flags] # 调用 API重要:使用原生 API 时,必须先运行schema查看--data/--params参数结构,不要猜测字段格式。
spreadsheets
create— 创建电子表格get— 获取电子表格信息patch— 修改电子表格属性
spreadsheet.sheet.filters
create— 创建筛选delete— 删除筛选get— 获取筛选update— 更新筛选
spreadsheet.sheets
find— 查找单元格
spreadsheet.sheet.float_images
create— 创建浮动图片patch— 更新浮动图片get— 获取浮动图片query— 查询所有浮动图片delete— 删除浮动图片
权限表
| 方法 | 所需 scope |
|---|---|
spreadsheets.create | sheets:spreadsheet:create |
spreadsheets.get | sheets:spreadsheet.meta:read |
spreadsheets.patch | sheets:spreadsheet.meta:write_only |
spreadsheet.sheet.filters.create | sheets:spreadsheet:write_only |
spreadsheet.sheet.filters.delete | sheets:spreadsheet:write_only |
spreadsheet.sheet.filters.get | sheets:spreadsheet:read |
spreadsheet.sheet.filters.update | sheets:spreadsheet:write_only |
spreadsheet.sheets.find | sheets:spreadsheet:read |
spreadsheet.sheet.float_images.create | sheets:spreadsheet:write_only |
spreadsheet.sheet.float_images.patch | sheets:spreadsheet:write_only |
spreadsheet.sheet.float_images.get | sheets:spreadsheet:read |
spreadsheet.sheet.float_images.query | sheets:spreadsheet:read |
spreadsheet.sheet.float_images.delete | sheets:spreadsheet:write_only |
Sheets Cell Data
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总单元格数据操作:
+read+write+append+find+replace
<a id="read"></a>
+read
对应命令:lark-cli sheets +read
内置能力:
- 支持
--url/--spreadsheet-token二选一(URL 支持 wiki) - 若已传
--sheet-id,--range可写A1:D10或C2 - 默认最多返回 200 行
lark-cli sheets +read --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--range "<sheetId>!A1:H20"
lark-cli sheets +read --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --range "C2"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 否 | <sheetId>!A1:D10、A1:D10 / C2 或 <sheetId> |
--sheet-id | 否 | 工作表 ID |
--value-render-option | 否 | ToString / FormattedValue / Formula / UnformattedValue |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
rangevaluestruncatedtotal_rows
<a id="write"></a>
+write
对应命令:lark-cli sheets +write
用于覆盖写入一个矩形区域。
lark-cli sheets +write --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:B2" \
--values '[["name","age"],["alice",18]]'
lark-cli sheets +write --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --range "C2" \
--values '[["hello"]]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 否 | 写入范围;可用相对范围或 <sheetId> |
--sheet-id | 否 | 工作表 ID |
--values | 是 | 二维数组 JSON |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
updated_rangeupdated_rowsupdated_columnsupdated_cellsrevision
<a id="append"></a>
+append
对应命令:lark-cli sheets +append
用于向工作表末尾追加行。
lark-cli sheets +append --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1" \
--values '[["华东一仓","2026-03",125000,98000,168000,"41.7%"]]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 否 | 追加范围:支持 <sheetId>、完整范围、相对范围 |
--sheet-id | 否 | 工作表 ID |
--values | 是 | 二维数组 JSON |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
table_rangeupdated_rangeupdated_rowsupdated_columnsupdated_cellsrevision
<a id="find"></a>
+find
对应命令:lark-cli sheets +find
只在一个已知 spreadsheet 内查找单元格内容,不是云空间搜索。
lark-cli sheets +find --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --find "张三" --range "A1:H200"
lark-cli sheets +find --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --find "仓库管理营收报表" --ignore-case参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--find | 是 | 查找内容 |
--range | 否 | 范围;不填则搜索整个工作表 |
--ignore-case | 否 | 不区分大小写 |
--match-entire-cell | 否 | 完全匹配单元格 |
--search-by-regex | 否 | 使用正则 |
--include-formulas | 否 | 搜索公式 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
matched_cellsmatched_formula_cellsrows_count
<a id="replace"></a>
+replace
对应命令:lark-cli sheets +replace
在指定范围内查找并替换单元格内容。
lark-cli sheets +replace --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --find "hello" --replacement "world"
lark-cli sheets +replace --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --find "\\d{4}-\\d{2}-\\d{2}" \
--replacement "DATE" --search-by-regex参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--find | 是 | 搜索文本 |
--replacement | 是 | 替换文本 |
--range | 否 | 搜索范围,不传则搜索整个工作表 |
--match-case | 否 | 区分大小写 |
--match-entire-cell | 否 | 匹配整个单元格 |
--search-by-regex | 否 | 使用正则 |
--include-formulas | 否 | 在公式中搜索 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
replace_result.matched_cellsreplace_result.matched_formula_cellsreplace_result.rows_count
参考
- spreadsheet-management — 先获取
sheet_id - dropdown — 写入
multipleValue前先设置下拉列表 - formula — 公式写入规则
Sheets Cell Images
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总单元格图片写入能力:
+write-image
<a id="write-image"></a>
+write-image
对应命令:lark-cli sheets +write-image
特性:
- 将本地图片文件写入到指定单元格
- 支持格式:PNG、JPEG、JPG、GIF、BMP、JFIF、EXIF、TIFF、BPG、HEIC
--range必须表示单个单元格,如A1或<sheetId>!B2:B2--name默认取--image的文件名
# 写入图片到指定单元格
lark-cli sheets +write-image --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!B2:B2" \
--image "./logo.png"
# 使用 URL + sheet-id,指定单个单元格
lark-cli sheets +write-image --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --range "C3" \
--image "./chart.jpg"
# 自定义图片名称
lark-cli sheets +write-image --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:A1" \
--image "./output.png" --name "revenue_chart.png"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 目标单元格:<sheetId>!A1:A1 或相对单元格 |
--sheet-id | 否 | 工作表 ID |
--image | 是 | 本地图片文件的相对路径 |
--name | 否 | 图片文件名(默认取 --image 的文件名) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
spreadsheetTokenupdateRangerevision
参考
- cell-data — 写入普通单元格数据
- float-images — 管理浮动图片
Sheets Cell Style and Merge
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总单元格样式和合并相关操作:
+set-style+batch-set-style+merge-cells+unmerge-cells
<a id="set-style"></a>
+set-style
对应命令:lark-cli sheets +set-style
对指定范围设置字体、颜色、对齐、边框等样式。
lark-cli sheets +set-style --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:C3" \
--style '{"font":{"bold":true},"backColor":"#ff0000"}'
lark-cli sheets +set-style --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:Z100" --style '{"clean":true}'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 单元格范围 |
--sheet-id | 否 | 工作表 ID(用于相对范围) |
--style | 是 | 样式 JSON 对象 |
--dry-run | 否 | 仅打印请求,不执行 |
常用 style 字段:
font.boldfont.italicfont.font_sizetextDecorationformatterhAlignvAlignforeColorbackColorborderTypeborderColorclean
输出:updates(updatedRange / updatedRows / updatedColumns / updatedCells / revision)
<a id="batch-set-style"></a>
+batch-set-style
对应命令:lark-cli sheets +batch-set-style
对多个范围批量设置不同样式。
lark-cli sheets +batch-set-style --spreadsheet-token "shtxxxxxxxx" \
--data '[{"ranges":["<sheetId>!A1:C3"],"style":{"font":{"bold":true},"backColor":"#21d11f"}},{"ranges":["<sheetId>!D1:F3"],"style":{"foreColor":"#ff0000"}}]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--data | 是 | JSON 数组,每项包含 ranges 和 style |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
totalUpdatedRowstotalUpdatedColumnstotalUpdatedCellsrevisionresponses[]
<a id="merge-cells"></a>
+merge-cells
对应命令:lark-cli sheets +merge-cells
支持三种模式:
MERGE_ALLMERGE_ROWSMERGE_COLUMNS
lark-cli sheets +merge-cells --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:B2" --merge-type MERGE_ALL参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 单元格范围 |
--sheet-id | 否 | 工作表 ID(用于相对范围) |
--merge-type | 是 | MERGE_ALL / MERGE_ROWS / MERGE_COLUMNS |
--dry-run | 否 | 仅打印请求,不执行 |
输出:spreadsheetToken
<a id="unmerge-cells"></a>
+unmerge-cells
对应命令:lark-cli sheets +unmerge-cells
用于拆分合并单元格。
lark-cli sheets +unmerge-cells --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A1:B2"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 单元格范围 |
--sheet-id | 否 | 工作表 ID(用于相对范围) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:spreadsheetToken
参考
- cell-data — 数据读写
- cell-images — 写入单元格图片
Sheets Dropdown
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总下拉列表配置:
+set-dropdown+update-dropdown+get-dropdown+delete-dropdown
关键规则: 使用 multipleValue 写入前,必须先设置下拉列表;否则值会被当成纯文本。<a id="set-dropdown"></a>
+set-dropdown
对应命令:lark-cli sheets +set-dropdown
lark-cli sheets +set-dropdown --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--range "<sheetId>!A2:A100" --condition-values '["选项1", "选项2", "选项3"]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 范围(如 <sheetId>!A2:A100) |
--condition-values | 是 | 下拉选项 JSON 数组 |
--multiple | 否 | 是否多选 |
--highlight | 否 | 是否着色 |
--colors | 否 | 颜色 JSON 数组 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:code、msg
<a id="update-dropdown"></a>
+update-dropdown
对应命令:lark-cli sheets +update-dropdown
lark-cli sheets +update-dropdown --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" \
--ranges '["<sheetId>!A1:A100"]' \
--condition-values '["选项A", "选项B"]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--ranges | 是 | 范围 JSON 数组 |
--condition-values | 是 | 选项 JSON 数组 |
--multiple | 否 | 是否多选 |
--highlight | 否 | 是否着色 |
--colors | 否 | 颜色 JSON 数组 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:spreadsheetToken、sheetId、dataValidation
<a id="get-dropdown"></a>
+get-dropdown
对应命令:lark-cli sheets +get-dropdown
lark-cli sheets +get-dropdown --spreadsheet-token "shtxxxxxxxx" \
--range "<sheetId>!A2:A100"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--range | 是 | 查询范围 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
dataValidations[].conditionValuesdataValidations[].rangesdataValidations[].options.multipleValuesdataValidations[].options.highlightValidDatadataValidations[].options.colorValueMap
<a id="delete-dropdown"></a>
+delete-dropdown
对应命令:lark-cli sheets +delete-dropdown
lark-cli sheets +delete-dropdown --spreadsheet-token "shtxxxxxxxx" \
--ranges '["<sheetId>!A2:A100", "<sheetId>!C1:C50"]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--ranges | 是 | 范围 JSON 数组 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
rangeResults[].rangerangeResults[].successrangeResults[].updatedCells
典型流程
# 1. 配置下拉
lark-cli sheets +set-dropdown --url "<url>" \
--range "<sheetId>!J2:J100" --condition-values '["选项1","选项2"]' --multiple
# 2. 再写入 multipleValue
lark-cli sheets +write --url "<url>" --sheet-id "<sheetId>" --range "J2" \
--values '[[{"type":"multipleValue","values":["选项1","选项2"]}]]'参考
- cell-data — 写入普通单元格数据
Sheets Filter Views
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总筛选视图和筛选条件:
+create-filter-view+update-filter-view+list-filter-views+get-filter-view+delete-filter-view+create-filter-view-condition+update-filter-view-condition+list-filter-view-conditions+get-filter-view-condition+delete-filter-view-condition
<a id="create-filter-view"></a>
+create-filter-view
对应命令:lark-cli sheets +create-filter-view
在工作表中创建筛选视图,每个工作表最多 150 个。
lark-cli sheets +create-filter-view --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --range "<sheetId>!A1:H14"
lark-cli sheets +create-filter-view --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --range "<sheetId>!A1:H14" --filter-view-name "我的筛选"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--range | 是 | 筛选范围 |
--filter-view-name | 否 | 显示名称 |
--filter-view-id | 否 | 自定义 10 位字母数字 ID |
输出:filter_view
<a id="update-filter-view"></a>
+update-filter-view
对应命令:lark-cli sheets +update-filter-view
lark-cli sheets +update-filter-view --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" --range "<sheetId>!A1:J20"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--filter-view-id | 是 | 筛选视图 ID |
--range | 否 | 新范围 |
--filter-view-name | 否 | 新显示名称 |
<a id="list-filter-views"></a>
+list-filter-views
对应命令:lark-cli sheets +list-filter-views
lark-cli sheets +list-filter-views --spreadsheet-token "shtxxxxxxxx" --sheet-id "<sheetId>"输出:items[](filter_view_id、filter_view_name、range)
<a id="get-filter-view"></a>
+get-filter-view
对应命令:lark-cli sheets +get-filter-view
lark-cli sheets +get-filter-view --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>"输出:filter_view
<a id="delete-filter-view"></a>
+delete-filter-view
对应命令:lark-cli sheets +delete-filter-view
lark-cli sheets +delete-filter-view --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--filter-view-id | 是 | 筛选视图 ID |
<a id="create-filter-view-condition"></a>
+create-filter-view-condition
对应命令:lark-cli sheets +create-filter-view-condition
为筛选视图的指定列创建筛选条件。
# 数值筛选:E 列 < 6
lark-cli sheets +create-filter-view-condition --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" \
--condition-id "E" --filter-type "number" --compare-type "less" --expected '["6"]'
# 文本筛选:G 列以 a 开头
lark-cli sheets +create-filter-view-condition --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" \
--condition-id "G" --filter-type "text" --compare-type "beginsWith" --expected '["a"]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--filter-view-id | 是 | 筛选视图 ID |
--condition-id | 是 | 列字母,如 E |
--filter-type | 是 | hiddenValue / number / text / color |
--compare-type | 否 | 比较运算符 |
--expected | 是 | 筛选值 JSON 数组 |
输出:condition
<a id="update-filter-view-condition"></a>
+update-filter-view-condition
对应命令:lark-cli sheets +update-filter-view-condition
lark-cli sheets +update-filter-view-condition --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" --condition-id "E" \
--filter-type "number" --compare-type "between" --expected '["2","10"]'参数与创建条件相同,但 filter-type / compare-type / expected 可按需部分更新。
<a id="list-filter-view-conditions"></a>
+list-filter-view-conditions
对应命令:lark-cli sheets +list-filter-view-conditions
lark-cli sheets +list-filter-view-conditions --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>"输出:items[]
<a id="get-filter-view-condition"></a>
+get-filter-view-condition
对应命令:lark-cli sheets +get-filter-view-condition
lark-cli sheets +get-filter-view-condition --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" --condition-id "E"输出:condition
<a id="delete-filter-view-condition"></a>
+delete-filter-view-condition
对应命令:lark-cli sheets +delete-filter-view-condition
lark-cli sheets +delete-filter-view-condition --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --filter-view-id "<fvId>" --condition-id "E"参考
- dropdown — 需要下拉值配合筛选时
- cell-data — 只查数据时用
+find
Sheets Float Images
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总浮动图片相关能力:
+media-upload+create-float-image+update-float-image+get-float-image+list-float-images+delete-float-image
<a id="media-upload"></a>
+media-upload
对应命令:lark-cli sheets +media-upload
把本地图片上传到指定电子表格的素材空间,返回 file_token,供 +create-float-image 使用。
lark-cli sheets +media-upload --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--file ./image.png说明:
- 内部调用
drive/v1/medias/upload_all >20MB自动分片上传--file只能是当前工作目录下的相对路径
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--file | 是 | 本地图片路径,必须是相对路径 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:file_token、file_name、size、spreadsheet_token
<a id="create-float-image"></a>
+create-float-image
对应命令:lark-cli sheets +create-float-image
lark-cli sheets +create-float-image --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --float-image-token "boxcnXXXX" \
--range "<sheetId>!A1:A1" --width 200 --height 150关键规则:
--float-image-token必须来自+media-upload--range必须锚定单个单元格width/height必须>=20offset-x/offset-y必须>=0
输出:float_image
<a id="update-float-image"></a>
+update-float-image
对应命令:lark-cli sheets +update-float-image
lark-cli sheets +update-float-image --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --float-image-id "fi12345678" \
--width 400 --height 300 --offset-y 20至少需要传一个更新字段:--range / --width / --height / --offset-x / --offset-y
输出:更新后的 float_image
<a id="get-float-image"></a>
+get-float-image
对应命令:lark-cli sheets +get-float-image
lark-cli sheets +get-float-image --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --float-image-id "fi12345678"输出:float_image
<a id="list-float-images"></a>
+list-float-images
对应命令:lark-cli sheets +list-float-images
lark-cli sheets +list-float-images --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>"输出:items[]
<a id="delete-float-image"></a>
+delete-float-image
对应命令:lark-cli sheets +delete-float-image
lark-cli sheets +delete-float-image --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --float-image-id "fi12345678"输出:code、msg
读取图片内容
上述读接口只返回元数据,不返回图片字节。要读取图片内容,用 float_image_token 调:
lark-cli docs +media-preview --token "<float_image_token>" --output ./image.png参考
- cell-images — 写入到单元格的图片
- spreadsheet-management — 先获取
sheet_id
飞书表格公式规则
生成或改写飞书电子表格公式时的参考规则。飞书不像 Excel 365 默认 spill,普通公式对区域默认“投影”(只取当前行/列对应的单值),必须显式使用 ARRAYFORMULA 或原生数组函数才能逐项展开。写入方式
公式必须使用对象格式写入(参见 SKILL.md「单元格数据类型」):
--values '[[{"type":"formula","text":"=SUM(A1:A10)"}]]'ARRAYFORMULA 判断流程
1. 结果是标量(单值)→ 不需要 2. 结果是数组,且公式中有原生数组函数 → 不需要(数组语义自动传播) 3. 结果是数组,且公式中无原生数组函数,对区域做标量计算 → 加 ARRAYFORMULA
# 有原生数组函数,无需包裹
=FILTER(A2:A10,B2:B10="x")+1 ✓
=XLOOKUP(E2:E10,A2:A10,B2:B10)*100 ✓
=MAP(A2:A10,LAMBDA(x,x*2))-1 ✓
# 无原生数组函数,必须包裹
=ARRAYFORMULA(A2:A100*B2:B100) ✓
=ARRAYFORMULA(IF(A2:A100>0,B2:B100,""))✓原生数组函数清单(无需 ARRAYFORMULA)
ARRAYFORMULA ARRAY_CONSTRAIN BYCOL BYROW CELL CHOOSECOLS CHOOSEROWS DROP EXPAND FILTER FLATTEN FREQUENCY GROWTH HSTACK IMPORTDATA IMPORTFEED IMPORTHTML IMPORTRANGE IMPORTXML LINEST LOGEST LOOKUP MAKEARRAY MAP MINVERSE MMULT MUNIT QUERY RANDARRAY REDUCE REGEXEXTRACT SCAN SEQUENCE SORT SORTBY SORTN SPLIT SUMPRODUCT SWITCH TAKE TEXTSPLIT TOCOL TOROW TRANSPOSE TREND UNIQUE VSTACK WRAPCOLS WRAPROWS XLOOKUP
高风险函数:INDEX / OFFSET / ROW / COLUMN / MATCH
行号/列号/偏移量本身是数组时,必须显式包裹:
=ARRAYFORMULA(INDEX(...))
=ARRAYFORMULA(ROW(...))例外:结果直接交给聚合函数消费时不需要:=SUM(INDEX(A1:B2,0,1)) ✓
隐式逐项求值 → MAP/LAMBDA
Excel 中 SUBTOTAL、INDIRECT、OFFSET 等在 SUMPRODUCT 内会隐式逐行求值,飞书不会。用 MAP 显式遍历:
# Excel
=SUMPRODUCT(SUBTOTAL(103,INDIRECT("E"&ROW($E$16:$E$387))))
# 飞书
=SUMPRODUCT(MAP(ARRAYFORMULA(ROW($E$16:$E$387)),LAMBDA(r,SUBTOTAL(103,INDIRECT("E"&r)))))同类场景:SUMIF/COUNTIF/SUMIFS 的范围参数来自 INDIRECT/OFFSET 时也需要 MAP。
多维结果降维
飞书公式结果只能是二维,不能返回“区域的列表”。合并多个区域时:
| 需求 | 写法 |
|---|---|
| 上下堆叠 | =VSTACK(a, b, c) |
| 左右拼接 | =HSTACK(a, b, c) |
| 压成单列 | =TOCOL(...) |
| 压成单行 | =TOROW(...) |
| 归约为标量 | =REDUCE(init, arr, LAMBDA(acc, x, ...)) |
日期差
| 需求 | 正确写法 | 错误写法 |
|---|---|---|
| 天数差 | =DAYS(B2,A2) 或 =DATEDIF(A2,B2,"D") 或 =B2-A2 | =DAY(B2-A2) |
| 月份差 | =DATEDIF(A2,B2,"M") | =MONTH(B2-A2) |
| 年份差 | =DATEDIF(A2,B2,"Y") | =YEAR(B2-A2) |
| 工作日差 | =NETWORKDAYS(A2,B2) | — |
飞书不支持的 Excel 语法
| Excel 语法 | 飞书替代 |
|---|---|
=@A1:A10(隐式交叉) | =A1:A10(飞书默认投影,去掉 @) |
=A1#(spill range) | 改成明确范围,或用 TAKE/DROP/ARRAY_CONSTRAIN |
=SUM(Table1[Amount])(结构化引用) | =SUM(A2:A100)(改为 A1 区域) |
{=A1:A10*B1:B10}(CSE 花括号) | =ARRAYFORMULA(A1:A10*B1:B10) |
STOCKHISTORY / WEBSERVICE / CUBE* | 飞书无等价函数 |
Sheets Row and Column Management
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总行列结构操作:
+add-dimension+insert-dimension+update-dimension+move-dimension+delete-dimension
<a id="add-dimension"></a>
+add-dimension
对应命令:lark-cli sheets +add-dimension
在工作表末尾追加空行或空列,不影响已有数据。
lark-cli sheets +add-dimension --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --dimension ROWS --length 10参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--dimension | 是 | ROWS 或 COLUMNS |
--length | 是 | 追加数量(1-5000) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:addCount、majorDimension
<a id="insert-dimension"></a>
+insert-dimension
对应命令:lark-cli sheets +insert-dimension
在指定位置插入空行或空列,已有数据向下或向右移动。
lark-cli sheets +insert-dimension --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --dimension ROWS --start-index 3 --end-index 7参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--dimension | 是 | ROWS 或 COLUMNS |
--start-index | 是 | 起始位置(0-indexed) |
--end-index | 是 | 结束位置(0-indexed,不含) |
--inherit-style | 否 | BEFORE 或 AFTER |
--dry-run | 否 | 仅打印请求,不执行 |
输出:成功时 data 为空对象 {}
<a id="update-dimension"></a>
+update-dimension
对应命令:lark-cli sheets +update-dimension
更新指定范围行/列的显隐状态和行高/列宽。
lark-cli sheets +update-dimension --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --dimension ROWS --start-index 1 --end-index 3 \
--visible=false参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--dimension | 是 | ROWS 或 COLUMNS |
--start-index | 是 | 起始位置(1-indexed,含) |
--end-index | 是 | 结束位置(1-indexed,含) |
--visible | 否 | --visible=true 或 --visible=false |
--fixed-size | 否 | 行高或列宽(像素) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:成功时 data 为空对象 {}
<a id="move-dimension"></a>
+move-dimension
对应命令:lark-cli sheets +move-dimension
将指定范围的行/列移动到目标位置。
lark-cli sheets +move-dimension --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --dimension ROWS \
--start-index 0 --end-index 1 --destination-index 4参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--dimension | 是 | ROWS 或 COLUMNS |
--start-index | 是 | 源起始位置(0-indexed) |
--end-index | 是 | 源结束位置(0-indexed,含) |
--destination-index | 是 | 目标位置(0-indexed) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:成功时 data 为空对象 {}
<a id="delete-dimension"></a>
+delete-dimension
对应命令:lark-cli sheets +delete-dimension
删除指定范围的行或列。
lark-cli sheets +delete-dimension --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --dimension ROWS --start-index 3 --end-index 7参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 工作表 ID |
--dimension | 是 | ROWS 或 COLUMNS |
--start-index | 是 | 起始位置(1-indexed,含) |
--end-index | 是 | 结束位置(1-indexed,含) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:delCount、majorDimension
参考
- spreadsheet-management — 查看当前工作表信息
- cell-style-and-merge — 调整样式或合并单元格
Sheets Sheet Management
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总工作表级操作:
+create-sheet+copy-sheet+delete-sheet+update-sheet
其中 +create-sheet / +copy-sheet / +delete-sheet 底层封装官方“操作工作表(operate-sheets)”接口;+update-sheet 封装“更新工作表属性”接口。
<a id="create-sheet"></a>
+create-sheet
对应命令:lark-cli sheets +create-sheet
# 在表格末尾或服务端默认位置创建工作表
lark-cli sheets +create-sheet --spreadsheet-token "shtxxxxxxxx" \
--title "明细"
# 指定插入位置(0-based)
lark-cli sheets +create-sheet --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--title "汇总" --index 0参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--title | 否 | 工作表标题,最长 100 字符,不能包含 / \ ? * [ ] : |
--index | 否 | 工作表位置(从 0 开始) |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
spreadsheet_tokensheet.sheet_idsheet.titlesheet.index
<a id="copy-sheet"></a>
+copy-sheet
对应命令:lark-cli sheets +copy-sheet
# 按默认位置复制
lark-cli sheets +copy-sheet --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>"
# 指定副本名称和位置
lark-cli sheets +copy-sheet --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --title "销售副本" --index 2参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 源工作表 ID |
--title | 否 | 新工作表标题,最长 100 字符,不能包含 / \ ? * [ ] : |
--index | 否 | 新工作表位置(从 0 开始) |
--dry-run | 否 | 仅打印请求,不执行 |
说明:
- 传
--index时,CLI 会先复制,再追加一次位置更新,把副本移动到目标索引
输出:
spreadsheet_tokensheet.sheet_idsheet.titlesheet.index
<a id="delete-sheet"></a>
+delete-sheet
对应命令:lark-cli sheets +delete-sheet
[!CAUTION]
这是高风险删除操作。CLI 会要求显式确认;可以先用 --dry-run 预览。lark-cli sheets +delete-sheet --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>"参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 要删除的工作表 ID |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
deletedspreadsheet_tokensheet_id
<a id="update-sheet"></a>
+update-sheet
对应命令:lark-cli sheets +update-sheet
用于更新工作表标题、位置、隐藏状态、冻结行列和保护设置。
# 改名 + 调整冻结
lark-cli sheets +update-sheet --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --title "汇总表" --frozen-row-count 2 --frozen-col-count 1
# 隐藏工作表
lark-cli sheets +update-sheet --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--sheet-id "<sheetId>" --hidden=true
# 开启保护并授权额外编辑人
lark-cli sheets +update-sheet --spreadsheet-token "shtxxxxxxxx" \
--sheet-id "<sheetId>" --lock LOCK --lock-info "仅财务维护" \
--user-id-type open_id --user-ids '["ou_xxx","ou_yyy"]'参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 表格 token |
--sheet-id | 是 | 要更新的工作表 ID |
--title | 否 | 新标题,最长 100 字符,不能包含 / \ ? * [ ] : |
--index | 否 | 新位置(从 0 开始) |
--hidden | 否 | --hidden=true 隐藏,--hidden=false 取消隐藏 |
--frozen-row-count | 否 | 冻结行数,0 表示取消冻结 |
--frozen-col-count | 否 | 冻结列数,0 表示取消冻结 |
--lock | 否 | 保护模式:LOCK / UNLOCK |
--lock-info | 否 | 保护备注;要求 --lock LOCK |
--user-id-type | 否 | --user-ids 的 ID 类型:open_id / union_id / lark_id / user_id |
--user-ids | 否 | 额外可编辑用户 ID 的 JSON 数组;要求 --lock LOCK |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
spreadsheet_tokensheet.sheet_idsheet.titlesheet.hiddensheet.grid_properties.frozen_row_countsheet.grid_properties.frozen_column_countsheet.protect
参考
- spreadsheet-management — 先获取
sheet_id - row-column-management — 需要改行列结构时用这组命令
Sheets Spreadsheet Management
前置条件: 先阅读 `../lark-shared/SKILL.md` 了解认证、全局参数和安全规则。
这份 reference 汇总电子表格对象级操作:
+create:创建电子表格+info:查看电子表格和工作表信息+export:导出电子表格
<a id="create"></a>
+create
对应命令:lark-cli sheets +create
特性:
- 一步创建表格并返回 URL
- 可选
--headers/--data在创建后自动写入第一个工作表的 A1 开始 --as bot创建成功后,CLI 会尝试为当前 CLI 用户自动授予full_access
# 只创建表格
lark-cli sheets +create --title "仓库管理营收报表"
# 创建并写入表头 + 初始数据
lark-cli sheets +create --title "仓库管理营收报表" \
--headers '["仓库","统计月份","入库金额","出库金额","销售收入","毛利率"]' \
--data '[["华东一仓","2026-03",125000,98000,168000,"41.7%"]]'
# 创建到指定文件夹
lark-cli sheets +create --title "测试表" --folder-token "fldbc_xxx"
# 仅预览请求
lark-cli sheets +create --title "测试表" --dry-run参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--title | 是 | 表格标题 |
--folder-token | 否 | 创建到指定文件夹 |
--headers | 否 | 一维数组 JSON,作为表头写入 |
--data | 否 | 二维数组 JSON,作为初始数据写入 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
spreadsheet_tokentitleurlpermission_grant(仅--as bot时返回)
<a id="info"></a>
+info
对应命令:lark-cli sheets +info
用于:
- 从表格 URL / token 获取
spreadsheet_token - 列出工作表的
sheet_id、标题、行列数、冻结状态等信息
# 传 URL(支持 wiki URL)
lark-cli sheets +info --url "https://example.larksuite.com/sheets/shtxxxxxxxx"
# 传 spreadsheet_token
lark-cli sheets +info --spreadsheet-token "shtxxxxxxxx"
# 仅预览请求
lark-cli sheets +info --url "https://..." --dry-run参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一;支持 wiki URL) |
--spreadsheet-token | 否 | 电子表格 token |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
spreadsheet.spreadsheet.tokenspreadsheet.spreadsheet.urlsheets.sheets[]
<a id="export"></a>
+export
对应命令:lark-cli sheets +export
特性:
- 创建导出任务并轮询完成
- 支持导出
xlsx或csv - 提供
--output-path时自动下载,否则只返回file_token
# 导出 xlsx 并保存到本地
lark-cli sheets +export --url "https://example.larksuite.com/sheets/shtxxxxxxxx" \
--file-extension xlsx --output-path "./report.xlsx"
# 导出 csv(必须指定 sheet-id)
lark-cli sheets +export --spreadsheet-token "shtxxxxxxxx" \
--file-extension csv --sheet-id "<sheetId>" --output-path "./report.csv"
# 只返回导出文件 token
lark-cli sheets +export --spreadsheet-token "shtxxxxxxxx" --file-extension xlsx参数:
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 否 | 电子表格 URL(与 --spreadsheet-token 二选一) |
--spreadsheet-token | 否 | 电子表格 token |
--file-extension | 是 | xlsx 或 csv |
--sheet-id | 否 | 导出 csv 时必填 |
--output-path | 否 | 保存到本地的路径 |
--dry-run | 否 | 仅打印请求,不执行 |
输出:
- 提供
--output-path:saved_path、file_name、file_size - 不提供
--output-path:file_token、file_name、file_size
参考
- sheet-management — 管理工作表
- cell-data — 读写单元格数据
- float-images — 上传和管理浮动图片
Related skills
How it compares
Pick lark-sheets for spreadsheet cell CRUD and export; use lark-doc when the first step is locating files in cloud space.
FAQ
How does lark-sheets find a spreadsheet by name?
lark-sheets does not search cloud space by title. Use lark-cli docs +search first to locate SHEET resources, then pass the returned spreadsheet token to sheets +info, +read, or +export commands.
What does lark-sheets require before running commands?
lark-sheets requires the lark-cli binary installed and authentication configured per lark-shared SKILL.md. Agents should read lark-shared first for credential and permission handling before any sheets v3 operation.
Is Lark Sheets safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.