lark-cli 實戰 02:AI Agent 操作飛書電子表格全流程實測(22 項功能)
发布于 2026-04-15 23:15:52(微信公众号导出记录)。
本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。
原文链接:查看原文
OCR 转写有效文字约 10231 字;代码、流程图和版式以文末原始排版图为准。
正文(本地 OCR 转写)
(22填功能) nalwe×7ce EI V1ajero 2826年4月15日 23:15 日本 本文記祭了AI Agent(Claude)通遇Lark-cl1 操作飛害電子表格的完整實潮退程。 每一個命令都在何服器上實除執行過,所有输出為真實返回值。 工具: Claude Code + Lark-cli v1l.0.9 和上一篇文檔一樣:不宣程式碼,Agent 直接测用lark-cli令操作你的飛害表格。前提 是已经完成Lark-cli安装和使用者登錄授權(見上一篇)。
一、前置:補授權表格權限
如果之前置時没有授權表格相脚的scope,操作表格會报籍:
-
ok": false,
-
error":(
-
type": "missing_scope",
"nessage": "nissing required scope(s]: sheets:spreadsheet:crcate, 5
解決方法-授權(走Dev1ceFLow,和首次登一楼): lark-cli auth login --scope shectsspreadshect:create sheetsspreadshe 返回授槽速结和user_code,在灣震器理础即可。新增的 scope 會增量累精到已有權限 上,不曾覆盈之前的。 實际返回: 0K:登成功!使用者:w8x7ce 本次新授予 scopes:shccts:sprcadsheet:crcate sheets:sprcadshcct:writc_o 本次木授予scopes:(空)
二、創建表格
2.1带表頭和数據一次性創建
Lark-cl1 sheets +create \
-
-title"lark-cll 表格置测”\
-
-headers“[“姓名","部","成",“呼级"]’\
-
data“[["张三",“挂蜥部”,95,"A"],[“李四*,斋品部,88,“B”].[“王五”,“超部
實际返回:
-
ok*: trwe,
-
data":{
-
spreadsheet_token*: "IPxPsm0ILh3ZXmtr7SBcnR8unpg",
"title":“lark-cli 表格言测",
"url": "https://d7fwkz4t4y.feishu.cn/sheets/IPxPsm0iLh3zXntr7SBcnR8
参数設明: 参数 必填
- -title
表格標题 是 表额行,JSON 陣列 晋
-
-headers
-
-data
初始數缘,二维JSON 犀列
- -folder-token
目標資料夹token,不填刚創建在個人空間根目錄 否 打開ur1就能在飛害裡看到這個表格,表眼和数擦都已經入了。
三、查看表格资訊
創建後需要拿到sheet_id才能後缩操作,用+1nfo查看:
實际返回:
-
ok": true,
-
data":{
"sheets": { "sheet_1d*: "83d526*, "title*:"sheet1", "1ndex*: 0, "grid_properties*: { "colunn_count": 20, "frozen_column_count*:
}:,laauspea,ds, "spreadsheet*:{ "title':"lark-cli 衰格實测", "owner_id*: "pu_Hh99fcd3xxx"
關建资讯: sheet Id:83d526-後所有操作都需要個ID
-
预設 Sheet 名:Sheet1
-
预設260行×20列
shcct_id不是序號,而是飛書分配的字串ID(如“83d526”)。後绩错离操作必 须带上它
四、讀取數據
lark-cli sheets +read \
- -sheet-1d83d526*\
925p58 PT-ias-
- -range "A1:D6*
實际返回:
-
ok": true,
-
data":{
):,obuegonleA, "range": *83d526!A1:D6′, ]=,sanleA, [“姓名”,“部",“成”,“呼级“], ["张三",“挂析部”,95,“A"], ["学四",“品部”,88,“B"], [“王五",“般計部",72,“C"], [“超六”,“挂斯部”,91,“A”], [“猴七”。“品部”,63,“D"]
坑:range不能只寡“A1:D6,必须加
- -sheet-id参,或者range 嘉
成“83d5261A1:D6”格式.否则报:{error:{message:"-range*A1:D5 " requires --sheet-id or a ! prefix*J} 雨種窟法等俱: 方式一:分肥察 方式二:合在range經
- -range "83d526!A1:D6*
五、追加行数據
在现有表格末尾追加新行: lark-cli sheets +append \
-
-sheet-1d 83d526*\
-
-range "A:D* 1
-
values·[[“m八",市增部”,85,“B"],[“周九,“技部”,78,"C"]
實际返回:
- ok": true。
“data":{ "tableRange*:83d526!A7:D8,
"updatedRows*: 2, “updatedRange*:“83d5261A7:D8"
返回值告新你:数离到了A7:D8(第7-8行),共2行x4列-8個單元格。 露坑:range 不能寡 “A1:D1”(只含1行但给了2行数),报籍: ("err or*: ("code": 982o2, "nessage*: "range in request is wrong. rows of value:2 A:D表示整列箱圍,或碰保range行数≥数撼行數。 正链腐法:用
六、寫入單元格(覆盖模式)
寓人會面蓝目标區域的已有数。
6.1寫入單個單元格
Lark-cll sheets +urite
\adungausast1uxzeumrousdxdI. uayos-aauspra.ds.--
range “83d5261E1*
[。ll. sneA--
返回:
"updatedcells′: 1,
'.13.taigzspee. -,abueapatepdn.
- updatedRows*: 1
6.2寫入一列数據
Lark-cli sheets +write \
- range "83d5261E2:E8" \
[][][,][][][][。]].sA- 返回: uptatedCells*: 7, "updatedRange*: 83d5261E2:E8, updatedRows* : 7
注意values的格式:寡入一列時,每個值是一個单元素障列[“侵秀"],整體套一 ....
七、查找和替换
7.1查找
lark-cll sheets +find \
-
-sheet-id 83d526*\
-
find“技折部”
實际返回: 回照邀 }
-
ok": true,
-
data": {
-
find_resutt*: {
}:,insau putj, "matched cells*: ["B2*, 85, “B8"1 "rows_count*: 3
返回匹配到的量元格位置列表,“技怖部”出現在B2、B5、B8三個位置。
7.2替换
lark-cli sheets +replace \
-
-sheet-id #83d526*\
-
find“技部"\
I。 yuwelda-- 實际返回:
-
ok°: true,
-
data":{
1:,linsau aoeldau, "matched_cells*:["Bz", B5, *B8"], "rows_count’: 3
替换结果同時告诉你匹配或替换了频虑,打開删害表格可以看到B2、B5、B8的技術部,已 成“工程部」。 支援的逾赠遇项: 福分大小度
-
-natch-case
-
-natch-entire-cell
完全四配(不是包含) 正所匹配
-
-search-by-regex
-
- include-formulas
也援导公式中的文本
八、合供單元格
lark-cli sheets +nerge-cells \
-
-range "83d526!A10:D18" \
-
-nerge-type HERGE ALL
返回: {ok": true, “data: {"spreadsheetToken": *IPxPsnDiLh3ZXmtr7SBcnRBunp merge-type三模式: 模式 就明 MERGE_ALL 合供為一個單元格 按行合供(每行各自合供) MERGE_R0WS 按列合供(每列各自合供) MERGE_COLUMNS 踩坑:merge-type 是必填参数,不便會报罐。取消合供用
- urnerge-cells.
九、設定單元格様式
Lark-cli sheets +set-style \
-
range “83d5261A1:E1"\
-
-style ‘{"font*:(bold":true).backColor":#4472c4","fontColor:*#FF
實际返回:
- updates":{
‘5:s11apatepdn,
- updatedRange*: B3u526!A1:E1,
updatcdRous*: 1
遗把表照(A1:E1)段成了白字蓝底加粗。 style JSON支援的丽性:
- font":{
"bold°: true, "italic°: falsc, "s1ze": 14, "family": "Arial "fontColor":WFFFFFF", “backColar: #447224", “hAlign":“Center,
-
vAlign": "Middle”,
-
borderType*: FULL BORDER
十、插入和删除行列
10.1插入行
在第2行位置插人2行(9-1ndexed,start=1end=3): lark-cli shccts +insert-dimension \
- -sheet-id 83d526*\
dincnsion RoWS
xaput-1e1s--
- -end-index 3\
inherit-style BEFORE 返回: {“ok”:true,“data:{}} 数明: 锐明 参数 警数 ROWS SMO8
- -dimension
或COLUMNS 起始位置(0-indexed,θ表示第1行/列前)
-
-start-index
-
end-index
结束位置(θ-indexed,exclusive) BEFORE
- 1nherit-style
或AFTER,事一行/列承梯式 注意:insert-dinension 用的是 0-1ndexed,而delete-dinension 用的是 1-indexed雨個命令的索引醋系不一致,容易搞湿。
10.2删除行
到除第2-3 行(1-indexed,inclusive):
-
sheet-id83d526*
-
-dlmension RowS \
-
-start-index 2\
-
end-index 3
返回: {*delCount": 2,najorDimension:*Row5"} 索引體系對比: 命令 索引方式 start含 end 含裁 exclus1ve 起始位置 8-1ndexed
- 1nsert -dimens1on
起始位置 1-1ndexed inclusive
- delete-dimens1.on
十一、插入圆片到單元格
cd /tnp && lark-cli sheets +write-inage
-
-range "83d5261F2*\
-
-inage ",/test-ing.png"
實际返回: {
-
ok": true,
-
data":{
'revision*: 10,
- updateRange*: 83d526!F2:F2
霖坑1:图片路锂必须用相期路(-/xX-png),不能用韬剩路径(/Lnp/xx-p ),否则报错“unsafe inagc path"。 踩坑2:图片必须是有效的PNG/JPG等格式,捐坏的檔案窑報code 95201 server error.
十二、導出表格
12.1薄出為xlsx
cd /tnp 55 lark-cli sheets +export \
- -file-extension xlsx \
xsx*4uedxa-1sa4/ . qaed-1ndno-- 實際返回: Maiting for cxport task to complete... Export complete: f1le_token=I2BNb6T6ao5LAhx6EICcVo7WnDe
- ok": true,
"data":{ "saved _path*: */tmp/test-export.xlsx", "size_bytes': 7746
12.2薄出爲cSV
cd /tnp 5& lark-cli shects +export ↑
- - file-extension csv \
sheet-id83d526
- -output-path*./test-export.csv"
募出的CSV内容: 姓名,部門,成绩,部级,備注 张三,工程部,95,A,秀 李四,產品部,88,B,良好 王五,缺計部,72,C,一般 趟六,工程部,91,A,秀 踏七,產品部,63,D,需改进 孫八,市场部,85,B,良好 周九,工程部,78,C,一般 注意: CSV導出需要
- -sheet-id警数
putput-path必须用相對路径
十三、取消合供單元格
取消之前合供的A10:D10: lark-cli sheets +unnerge-cells \
- -range "83d5261A10:D18"
返回: {ok": true, “data: {"spreadsheetToken": "IPxPsn01Lh3ZXmtr7SBcnR&unp
十四、批量設定檬式
一次性對多個區域投定不同檬式:
lark-cli sheets +batch-set-style ↑ Moeq.*(anus+.plog.): 4uo.)+aa1/1s,*av=zvi92spe8...sabue.s1l. e1ep-- 實限返图:
-
ok": true,
-
data":{
"responses*: [ "updatedCells": 7, "updatedRange*: 83d526!A2:A8" "updatedcells: 7, "updatedRange*: 1, totalupdatedCel1s": 14
data是一個 JSON障列,每個元素包含: 目标區域(字串或障列) 槎式物件
- style
一次API调用就能設定多细不同區域的不同式,比逐個+5et-style高效。
十五、在末尾追加行/列
在表格末尾追加3列(不指定位置,只能追加到末尾): Lark-cli sheets +add-dimension \
-
sheet-id 83d526*
-
-dinension COLUMNS
E q1fua-- 返回: {“addcount":3,najorDimension:*COLUMNS") 射比 +insert-dinension: 用途 索引方式 位量 只能迪加到末尾 無需指定位置 摘展表格容量
- add-dimension
指定位置插入 在中間插入行/列
- insert-dimension
6-indexed
十六、設定行高/列宽和藏行/列
16.1設定列宽
把A列(第1列)襄度投为158px(1-1ndexed,1nclus1ve): lark-cli sheets +update-dimension
-
-spreadsheet-token "IPxPsmo1Lh3ZXntr7SBcmR8unpg*\
-
-sheet-id 83d526*\
-
dimension COLUMNS
-
-start-1ndex 1\
-
-end-index 1 \
-
fixed-size 150
返回: {*ok”: true, “data2:{}}
16.2隐藏列
隐藏G-H列(第7-8列): Lark-cli sheets +update-dimension ↑
-
-sheet-1d 83d526*
-
-dinension COLUMNS \
-
-start-index 7\
-
end-1ndex 8
-
-visible=false
-
visible必猬离成
跟坑:
-
-visible-false(用等號),寓成
-
-visible fal
se曹把“false”成位置参數报端。 update-dimension 支援的操作: 参数 效果 设定行高或列寶為158px
-
fixed-size 150
-
-visible=false
限藏行/列
- -visible=true
顾示行/列 注意:這因命令用的是1-indexedinclusive 索引l。
十七、移動行/列
把第7行移到第2行的位置(9-indexed):
1 Lark-cl1 sheets +nove-dimension
sheet-id #83d526*\
- -dimens1on RoNS \
\g xaput-1ye1s--
-
end-index 6\
-
-destination-1ndex 1
返回: {ok”: true, “data: {} } 参数就明: 就明 参数
- -start-index
源起始位置(0-indexed) 源结束位置(9-indexed,inclusive) end-index
- -destination-index
目標位置(9-1ndexed) 可以移單行(start=end)或多行(start<end)
十八、数據選
速功能通退原生API 用(非shortcut),要四個步:create→get→update
- delete,
18.0弹備筛選数據
先高入测试数據: Lark-cli sheets +urite \
-
-range “83d5261G1:H8*\
-
values“[I“效體”,“情感”],[“微博”,"正面”].[“微博”,“负面”],[“抖音”,"正面”]。
18.1創建筛選
按「媒始:列(G列)餘選微博: lark-cli sheets spreadsheet,sheet.filters create
-
-params '{"spreadsheet_token':IPxPsmoiLn3zXntr7SBcmRBunpg,*sheet_1
-
-data {"cal:G,condition={"expected":[微w].filter type:*nul
返回:
坑:range必须覆所有幂要参贝霹逻的列。如果只离“G1:G8",後面想加H 列條件就不行了,必弧先 delete 再create 重新指定更大的range.
18.2取選状態
lark-cli sheets spreadsheet sheet.filters get \
- params ‘{"spreadsheet_token*:IPxPsmoiLh3zXntr7SBcmRBunpg,*sheet_1
實际返回:
"data":{ "sheet_filter_info: "cot′: 6, "canditions":[{*expected”:["微博"].filter_type:“nultiv 1, "filtered_out_rows: [4, 5, 6, 8].
- SH:1ei9zspe8. .obuel.
返回中可以看到:
-
fiLter_infos-营前所有筛避條件
-
被過滤掉的行號(4,5,6,8是抖音和小红署)
-
filtered_out_rows
18.3追加選條件
在已有還基上,再加一個“情感,列(H列)="正面“的條件: Lark-cli sheets spreadsheet.sheet.filters update params ‘{"sprcadshect_token*:IPxPsm0iLh3zxntr75BcmRBunpg,*shcct_i
- -data ‘{"col*:H","condition={"expected":[i正m]."fllter_type*:*nul
返回: { code": 8. "msg: success } 现在静選终件是:G列="微博”且H列=”正面”。
18.4删除筛選
Lark-cll sheets spreadsheet.sheet.filters delete \
- -params '{"spreadsheet_token*:IPxPsm0iLh3ZXntr7SBcmRBunpg.*sheet_i
返回:
剩除後所有行恢额示。 筛遥操作流程德结: L.create-首次創建薛通(range必须覆蒸所有参與筋通的列)
2.get-查看常前解逛像件和被過通的行
3.update-在已有部速上添加/修改案列的條件(不需要range)
1.delete-清除所有远
十九、踩坑匯總
同题 原因 解决方案 auth login --scope 没有授表格權限 missing_scope 补授(增量,不覆盈之前的) requtres 加--sheet-1d 或用 sheetId!r
- -sheet
range 注带 sheet_id ange 格式
- 1d
append 时range 行数 用“A:D"整列航凰 不钩 > range unsafe inage/out cd到目標目錄,用./相封路径 用了到路径 put path merge-cells 必填参数 merge-type not s 加 --nerge-type MERGE_ALL/R 没傅 OWS/COLUMNS et 95201 server err 国片楼案损顷或格式不封 固片檔案捐坏或格式不對 確保是有效PNG/JPG or J0 insert 0-indexed, delete 1- insert/delete索 雨者索引體系不同 引湿乱 引混 indexed 寫成--visible=false(用等 "false" 寡成
- -visible false
報錯 號) 被当成位置参数 range要包含所有参與筛選的列, create時range 没覆 筛選range太小 蓝所有筛選列 如G1:H8 先delete 再create,或用up 筛選已存在 重複create會覆蓄 date追加條件
二十、全部功能清單
以下是lark-clisheets所有shortcut的測試狀態: 是否實测 功能 Shortcut 已测 創建表格(带表頭和数據)
- create
已测
- info
查看表格和sheet資訊 已测
- read
讀取單元格数據 已测
- write
寫入單元格(覆蓄模式)
- write-image
已测 插入圖片到單元格 puadde+ 追加行数據 已测 查找單元格 已测
- find
查找替换
- replace
已测 遵出爲xlsx/csv 已测
- export
合供单元格
- merge-cells
日
- unmerge-cells
日 取消合供 已测 設定单元格様式
-
set-style
-
batch-set-style
批量設定多區域檬式 日
- add-dimension
在末尾追加行/列 日 在指定位置插入行/列
- insert-dimension
删除行/列 已测
- delete-dimension
已测 設定行高/列實、藏行/列
- update-dimension
移動行/列 日
- move-dimension
spreadsheet.sheet.filters create
創建筛選
已测
spreadsheet.sheet.filters get
已测
獲取筛選狀態
已测
spreadsheet.sheet.filters update
更新筛選條件
spreadsheet.sheet.filters delete
删除選
已测
全部22個功能均已實测通過。
本文所有命令和输出均為真實執行结果。實测表格地址:
https ://d7fwkz4t4y.feishu.cn/sheets/IPxPsm0iLh3ZXmtr7SBcmR8unpg
附:踩坑匯總(精簡版)
問题
解决方案
原因
auth login--scope
没有授權表格權限
missing_scope
補授權
range 没带 sheet
加--sheet-id 或用sheetId!ran
requires --sheet-
ge格式
id
id
append時range
rows of value:2 >
用“A:D"
整列圍
行数不钧
range
unsafe image/outp
用了對路径
cd到目標目錄,用./相對路径
ut path
merge-cells必填
merge-type not se
加--merge-type
参数没傅
t
国片檔案捐堰或格式
95201 server erro
確保是有效PNG/JPG
不對
r
insert/delete索引
insert用0-indexed,delete用
兩者索引體系不同
1-indexed
混勐
本文所有命令和输出均為真實執行结果。實测表格地址:
https://d7fwkz4t4y.feishu.cn/sheets/IPxPsm0iLh3ZXmtr7SBcmR8unpg
lark-cli·目录三 <上一篇 下一篇> lark-cli實03:AIAgent 操作飛害 lark-cli實载θ1:安装到創建飛書文檔 完整指南 幻燈片全流程實测(含XML模板)
原始排版图
原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。
![]()

