Feishu CLI 多维表格

全面支持多维表格的增删改查,涵盖记录、字段、视图、仪表盘、工作流、角色、表单和高级权限 — CLI 中功能最丰富的模块,包含 60 个快捷命令。

在终端中管理多维表格

Feishu CLI 多维表格模块是功能最丰富的领域,包含 60 个快捷命令,覆盖飞书多维表格(Base)的方方面面。所有命令使用 base 服务前缀,通过 Base v3 API 操作。

核心能力包括:

  • 数据表增删改查 — 创建、列出、获取、更新和删除数据表,支持字段定义
  • 记录管理 — 新增/更新、列出、查询、删除记录,支持附件上传
  • 字段操作 — 创建带类型的字段,包括公式、查找引用、单选/多选及其选项
  • 视图配置 — 15 个命令用于筛选、分组、排序、时间轴和卡片布局
  • 数据查询 — 使用 JSON DSL 进行高级分析,支持聚合、筛选和分组
  • 仪表盘 — 创建仪表盘及图表/指标块
  • 工作流 — 创建、启用和禁用自动化工作流
  • 表单 — 创建表单和管理表单问题
  • 角色与权限 — 角色增删改查及高级权限开关

所有命令均支持用户机器人身份。高风险操作(删除)支持 --dry-run 进行安全预览。

所有 Base 命令的共享参数

大多数多维表格命令共享以下通用引用参数。--base-token 几乎在所有操作中都是必需的,可从多维表格 URL 中提取。

参数说明
--base-tokenBase token(几乎所有命令都需要)
--table-id数据表 ID 或名称
--field-id字段 ID 或名称
--view-id视图 ID 或名称
--record-id记录 ID

数据表增删改查 — 5 个命令

在 Base 中创建、列出、获取、更新和删除数据表。创建数据表时支持内联定义字段和视图。

# 创建带自定义字段的数据表 $ lark-cli base +table-create --base-token "bascnXXX" --name "Project Tracker" --fields '[{"field_name":"Status","type":3},{"field_name":"Priority","type":3}]'
# 列出 Base 中的所有数据表 $ lark-cli base +table-list --base-token "bascnXXX"
# 获取数据表详情 $ lark-cli base +table-get --base-token "bascnXXX" --table-id "tblXXX"
# 更新数据表名称 $ lark-cli base +table-update --base-token "bascnXXX" --table-id "tblXXX" --name "Renamed Tracker"
# 删除数据表(高风险操作,建议先使用 --dry-run) $ lark-cli base +table-delete --base-token "bascnXXX" --table-id "tblXXX" --dry-run
命令说明关键参数
+table-create创建数据表及可选字段/视图--name, --fields, --view
+table-list列出所有数据表--base-token
+table-get获取数据表详情--table-id
+table-update更新数据表名称--table-id, --name
+table-delete删除数据表--table-id

记录增删改查 — 6 个命令

创建、读取、更新和删除记录。+record-upsert 命令会根据是否提供 --record-id 智能决定是创建还是更新记录。支持直接向附件字段上传文件。

# 列出记录(可选视图筛选) $ lark-cli base +record-list --base-token "bascnXXX" --table-id "tblXXX" --view-id "vewXXX"
# 带分页的记录列表 $ lark-cli base +record-list --base-token "bascnXXX" --table-id "tblXXX" --offset 0 --limit 100
# 创建新记录 $ lark-cli base +record-upsert --base-token "bascnXXX" --table-id "tblXXX" --json '{"fields":{"Name":"Task A","Status":"In Progress","Priority":"High"}}'
# 更新已有记录 $ lark-cli base +record-upsert --base-token "bascnXXX" --table-id "tblXXX" --record-id "recXXX" --json '{"fields":{"Status":"Done"}}'
# 获取特定记录 $ lark-cli base +record-get --base-token "bascnXXX" --table-id "tblXXX" --record-id "recXXX"
# 向记录字段上传附件 $ lark-cli base +record-upload-attachment --base-token "bascnXXX" --table-id "tblXXX" --record-id "recXXX" --field-id "Attachments" --file ./report.pdf
# 查看记录编辑历史 $ lark-cli base +record-history-list --base-token "bascnXXX" --table-id "tblXXX" --record-id "recXXX"
# 删除记录(高风险操作) $ lark-cli base +record-delete --base-token "bascnXXX" --table-id "tblXXX" --record-id "recXXX" --dry-run
命令说明关键参数
+record-list列出数据表中的记录--view-id, --offset, --limit
+record-get获取特定记录--record-id
+record-upsert创建或更新记录--json, --record-id(可选)
+record-upload-attachment向附件字段上传文件--record-id, --field-id, --file, --name
+record-delete删除记录--record-id
+record-history-list查看记录编辑历史--record-id

字段增删改查 — 6 个命令

创建、列出、获取、更新和删除字段。字段定义使用包含 field_nametype(数字编码)和可选 property(用于选项、公式和查找引用)的 JSON 对象。

# 创建带选项的单选字段 $ lark-cli base +field-create --base-token "bascnXXX" --table-id "tblXXX" --json '{"field_name":"Priority","type":3,"property":{"options":[{"name":"High"},{"name":"Medium"},{"name":"Low"}]}}'
# 创建数字字段 $ lark-cli base +field-create --base-token "bascnXXX" --table-id "tblXXX" --json '{"field_name":"Budget","type":2}'
# 列出数据表中的所有字段 $ lark-cli base +field-list --base-token "bascnXXX" --table-id "tblXXX"
# 搜索字段选项 $ lark-cli base +field-search-options --base-token "bascnXXX" --table-id "tblXXX" --field-id "Priority"

字段类型参考

类型编码字段类型类型编码字段类型
1文本11人员
2数字13电话号码
3单选15超链接
4多选17查找引用
5日期时间18公式
7复选框22地理位置
命令说明
+field-create创建带类型和属性定义的字段
+field-list列出数据表中的所有字段
+field-get获取字段详情
+field-update更新字段属性
+field-delete删除字段
+field-search-options搜索单选/多选选项

视图配置 — 15 个命令

创建、列出、重命名和删除视图。配置视图级别的筛选、分组、排序、时间轴和卡片布局。每个配置项都有专用的获取和设置命令。

# 创建新视图 $ lark-cli base +view-create --base-token "bascnXXX" --table-id "tblXXX" --json '{"view_name":"Kanban View","view_type":"kanban"}'
# 设置视图筛选 $ lark-cli base +view-set-filter --base-token "bascnXXX" --table-id "tblXXX" --view-id "vewXXX" --json '{"conditions":[{"field_name":"Status","operator":"is","value":["Done"]}],"conjunction":"and"}'
# 设置视图排序 $ lark-cli base +view-set-sort --base-token "bascnXXX" --table-id "tblXXX" --view-id "vewXXX" --json '[{"field_name":"Priority","desc":true}]'
# 设置视图分组 $ lark-cli base +view-set-group --base-token "bascnXXX" --table-id "tblXXX" --view-id "vewXXX" --json '[{"field_name":"Status","desc":false}]'
# 重命名视图 $ lark-cli base +view-rename --base-token "bascnXXX" --table-id "tblXXX" --view-id "vewXXX" --json '{"name":"Sprint Board"}'
命令说明
+view-create创建新视图
+view-list列出所有视图
+view-get获取视图详情
+view-delete删除视图
+view-rename重命名视图
+view-get-filter / +view-set-filter获取或设置视图筛选配置
+view-get-group / +view-set-group获取或设置视图分组
+view-get-sort / +view-set-sort获取或设置视图排序
+view-get-timebar / +view-set-timebar获取或设置甘特图/时间轴配置
+view-get-card / +view-set-card获取或设置卡片布局配置

+data-query — 使用 JSON DSL 进行高级分析

使用 LiteQuery 协议查询和分析 Base 数据 — 这是一种支持维度、度量、聚合、筛选、排序和分组的 JSON DSL。DSL 中必须包含 dimensionsmeasures 至少其一。

# 带筛选、排序和字段选择的查询 $ lark-cli base +data-query --base-token "bascnXXX" --dsl '{"dimensions":["Status"],"measures":[{"field_name":"Budget","aggregator":"SUM"}],"filter":{"conjunction":"and","conditions":[{"field_name":"Status","operator":"is","value":["In Progress"]}]}}'
# 简单维度查询 $ lark-cli base +data-query --base-token "bascnXXX" --dsl '{"dimensions":["Name","Status"],"measures":[{"field_name":"Name","aggregator":"COUNT"}]}'
DSL 字段说明
dimensions用于分组的字段名称数组
measures{"field_name", "aggregator"} 对象数组(SUM、COUNT、AVG、MAX、MIN)
filter包含 conjunction(and/or)和 conditions 数组的筛选对象
sort{"field_name", "desc": true/false} 对象数组

权限范围:base:table:read

仪表盘与区块管理 — 10 个命令

创建和管理仪表盘,支持图表区块、指标区块和其他可视化组件。仪表盘提供 Base 数据的可视化概览。

# 创建仪表盘 $ lark-cli base +dashboard-create --base-token "bascnXXX" --name "Q1 Overview"
# 创建带主题的仪表盘 $ lark-cli base +dashboard-create --base-token "bascnXXX" --name "Sales Report" --theme-style "dark"
# 向仪表盘添加图表区块 $ lark-cli base +dashboard-block-create --base-token "bascnXXX" --json '{"dashboard_id":"dshXXX","block_type":"chart","config":{...}}'
# 列出所有仪表盘 $ lark-cli base +dashboard-list --base-token "bascnXXX"
命令说明
+dashboard-create创建仪表盘
+dashboard-list列出所有仪表盘
+dashboard-get获取仪表盘详情
+dashboard-update更新仪表盘名称或主题
+dashboard-delete删除仪表盘
+dashboard-block-create向仪表盘添加区块
+dashboard-block-list列出仪表盘中的区块
+dashboard-block-get获取区块详情
+dashboard-block-update更新仪表盘区块
+dashboard-block-delete删除仪表盘区块

工作流自动化 — 6 个命令

在 Base 中创建和管理自动化工作流。工作流可以基于记录变更、时间条件或手动触发来执行操作。工作流定义以 JSON 格式传入,大型定义可使用 @path/to/file.json 语法从文件加载。

# 创建工作流 $ lark-cli base +workflow-create --base-token "bascnXXX" --json '{"title":"Auto Notify","steps":[...]}'
# 从 JSON 文件创建工作流 $ lark-cli base +workflow-create --base-token "bascnXXX" --json @workflow-definition.json
# 启用工作流 $ lark-cli base +workflow-enable --base-token "bascnXXX" --json '{"workflow_id":"wflXXX"}'
# 禁用工作流 $ lark-cli base +workflow-disable --base-token "bascnXXX" --json '{"workflow_id":"wflXXX"}'
命令说明
+workflow-create创建新工作流
+workflow-list列出所有工作流
+workflow-get获取工作流详情
+workflow-update更新工作流定义
+workflow-enable启用工作流
+workflow-disable禁用工作流

表单管理 — 8 个命令

创建关联到 Base 数据表的表单并管理表单问题。表单提供用户友好的输入界面,用于向数据表收集记录。

# 为数据表创建表单 $ lark-cli base +form-create --base-token "bascnXXX" --table-id "tblXXX" --name "Bug Report Form" --description "Submit bug reports for triage"
# 列出数据表中的所有表单 $ lark-cli base +form-list --base-token "bascnXXX" --table-id "tblXXX"
# 向表单添加问题 $ lark-cli base +form-questions-create --base-token "bascnXXX" --table-id "tblXXX" --json '{"form_id":"frmXXX","field_id":"fldXXX","required":true}'
命令说明
+form-create为数据表创建表单
+form-list列出所有表单
+form-get获取表单详情
+form-update更新表单名称或描述
+form-delete删除表单
+form-questions-create向表单添加问题
+form-questions-update更新表单问题
+form-questions-delete删除表单问题

角色管理与高级权限 — 7 个命令

创建和管理自定义角色以实现细粒度的访问控制。可在 Base 级别启用或禁用高级权限。启用高级权限后,访问控制通过角色而非简单共享来管理。

# 在 Base 上启用高级权限 $ lark-cli base +advperm-enable --base-token "bascnXXX"
# 创建自定义角色 $ lark-cli base +role-create --base-token "bascnXXX" --json '{"role_name":"Editor","permissions":[...]}'
# 列出所有角色 $ lark-cli base +role-list --base-token "bascnXXX"
# 禁用高级权限 $ lark-cli base +advperm-disable --base-token "bascnXXX"
命令说明
+role-create创建自定义角色
+role-list列出所有角色
+role-get获取角色详情
+role-update更新角色
+role-delete删除角色
+advperm-enable启用高级权限
+advperm-disable禁用高级权限

Base 级别命令 — 3 个命令

获取 Base 信息、创建新 Base 或复制已有 Base。

# 获取 Base 详情 $ lark-cli base +base-get --base-token "bascnXXX"
# 创建新 Base $ lark-cli base +base-create --json '{"name":"Project Management","folder_token":"fldcnXXX"}'
# 复制已有 Base $ lark-cli base +base-copy --base-token "bascnXXX" --json '{"name":"Project Tracker Copy"}'
命令说明
+base-get获取 Base 元数据
+base-create创建新 Base
+base-copy复制已有 Base

最佳实践与限制

  • 批量限制:记录操作每批最多 500 条记录。
  • 附件大小:+record-upload-attachment 每个文件最大 20 MB。
  • 知识库链接:如果您的 Base 位于知识库中,需要先使用 lark-cli wiki spaces get_node 解析知识库 token 以获取实际的 Base token。
  • 试运行支持:高风险操作(删除命令)支持 --dry-run,可在执行前预览 API 调用。
  • 字段引用:大多数命令的 --field-id 参数既接受字段 ID(fldXXX)也接受字段名称。
  • 从文件加载 JSON:对于大型 JSON 负载,可使用 @path/to/file.json 语法替代内联 JSON 字符串。
  • 公式/查找引用字段:创建公式或查找引用字段(类型 17、18)时,请先阅读字段指南并设置 --i-have-read-guide

全部 60 个多维表格快捷命令

分类命令风险等级说明
数据表+table-create写入创建数据表及可选字段/视图
+table-list读取列出所有数据表
+table-get读取获取数据表详情
+table-update写入更新数据表名称
+table-delete写入删除数据表
记录+record-list读取列出数据表中的记录
+record-get读取获取特定记录
+record-upsert写入创建或更新记录
+record-upload-attachment写入向附件字段上传文件
+record-delete写入删除记录
+record-history-list读取查看记录编辑历史
字段+field-create写入创建字段
+field-list读取列出所有字段
+field-get读取获取字段详情
+field-update写入更新字段属性
+field-delete写入删除字段
+field-search-options读取搜索选项
视图+view-create写入创建新视图
+view-list读取列出所有视图
+view-get读取获取视图详情
+view-delete写入删除视图
+view-rename写入重命名视图
+view-get-filter读取获取视图筛选
+view-set-filter写入设置视图筛选
+view-get-group读取获取视图分组
+view-set-group写入设置视图分组
+view-get-sort读取获取视图排序
+view-set-sort写入设置视图排序
+view-get-timebar读取获取时间轴配置
+view-set-timebar写入设置时间轴配置
+view-get-card读取获取卡片布局
+view-set-card写入设置卡片布局
查询+data-query读取使用 JSON DSL 查询
仪表盘+dashboard-create写入创建仪表盘
+dashboard-list读取列出仪表盘
+dashboard-get读取获取仪表盘详情
+dashboard-update写入更新仪表盘
+dashboard-delete写入删除仪表盘
+dashboard-block-create写入添加区块
+dashboard-block-list读取列出区块
+dashboard-block-get读取获取区块详情
+dashboard-block-update写入更新区块
+dashboard-block-delete写入删除区块
工作流+workflow-create写入创建工作流
+workflow-list读取列出工作流
+workflow-get读取获取工作流详情
+workflow-update写入更新工作流
+workflow-enable写入启用工作流
+workflow-disable写入禁用工作流
表单+form-create写入创建表单
+form-list读取列出表单
+form-get读取获取表单详情
+form-update写入更新表单
+form-delete写入删除表单
+form-questions-create写入添加问题
+form-questions-update写入更新问题
+form-questions-delete写入删除问题
Base+base-get读取获取 Base 元数据
+base-create写入创建新 Base
+base-copy写入复制已有 Base
角色与权限+role-create写入创建自定义角色
+role-list读取列出角色
+role-get读取获取角色详情
+role-update写入更新角色
+role-delete写入删除角色
+advperm-enable写入启用高级权限
+advperm-disable写入禁用高级权限

相关 Feishu CLI 指南