跳至主要内容

lark-cli 實戰 02:AI Agent 操作飛書電子表格全流程實測(22 項功能)

· 閱讀時間約 16 分鐘
w0x7ce
MySelf

发布于 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 的尺寸上限,以下图片按从上到下的顺序连续保存。 lark-cli 實戰 02:AI Agent 操作飛書電子表格全流程實測(22 項功能):微信公众号导出原始排版图(第 1 段,共 2 段) lark-cli 實戰 02:AI Agent 操作飛書電子表格全流程實測(22 項功能):微信公众号导出原始排版图(第 2 段,共 2 段)