飞书多维表格的数据自动汇总必须通过飞书开放平台API获取真实数据,涉及凭证获取、权限配置、分页请求以及字段解析等多个环节,最后借助pandas完成计算与汇总。

当需要在飞书多维表格中自动汇总销售数据、项目进度或用户反馈时,必须通过飞书开放平台API调用真实数据,不能仅依赖本地Excel逻辑模拟。脚本需要先获取有效的access_token,然后构造正确的字段路径发起请求,否则将返回空结果或401错误。
飞书应用凭证与权限获取步骤
登录飞书开放平台,进入「云文档」类应用,复制App ID和App Secret信息。
在「权限配置」中勾选【多维表格:读取数据】和【身份验证:获取用户基本信息】,否则后续调用table_records.list接口将返回403错误。
点击「安装到租户」并完成管理员授权,此步骤不可跳过,【未安装的应用无法访问任何多维表格数据】。
- 小提示: 确保App ID和App Secret已正确记录,后续换取access_token时需要使用。
使用requests调用多维表格记录列表
方法一:基础GET请求(适用于单页≤500条数据)
拼接URL:https://www.php.cn/link/127f75906618c4a0d33d9188ac6df110/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records?page_size=500,其中app_token和table_id需要从多维表格URL中提取:https://base.feishu.cn/base/{app_token}?table={table_id}。
设置Headers:'Authorization': 'Bearer {access_token}',注意Bearer后有一个空格;access_token需要使用App ID和App Secret调用/auth/v3/app_access_token/internal/接口获取,有效期为2小时。
方法二:分页循环拉取(数据超过500条时必用)
- 第一步:发送首次请求,解析响应中的
has_more和page_token字段。 - 第二步:如果
has_more == True,则将page_token作为参数追加到下一次请求的URL末尾,例如&page_token=xxx。 - 第三步:将每次响应的
items列表合并到总数据池中,直到has_more为False为止——遗漏此步骤将导致只能获取前500条数据。
- 常见问题: 如果请求返回401错误,可能是access_token已过期或Bearer头未正确配置,需要重新获取token。
解析与汇总字段值
飞书多维表格返回的record字段是嵌套结构,数值型字段例如「销售额」实际存在于fields.销售额.number中,文本字段在fields.客户名称.text,日期字段则需要使用fields.签约时间.date.string提取ISO格式字符串。
使用pandas.DataFrame处理时,先用列表推导式扁平化每条record:
[{ "销售额": r["fields"].get("销售额", {}).get("number", 0), "状态": r["fields"].get("状态", {}).get("text", "") } for r in records]
对「销售额」列执行df["销售额"].sum()即可得到汇总值;如果希望按「状态」分组求和,可以使用df.groupby("状态")["销售额"].sum()。
注意:字段名必须与多维表格中显示的中文名完全一致,包括空格和标点符号,否则get()将返回None导致计算中断。
- 小提示: 处理之前,可以打印fields字典检查字段路径,确保没有遗漏嵌套层次。
通过以上步骤,即可成功从飞书多维表格中拉取数据并完成汇总计算。
