飞书多维表格比普通表格更强大(支持附件、公式、分组视图),但影刀没有直接指令。
解决方法:通过浏览器自动化操作多维表格,像操作普通网页一样读写数据。
本文给出飞书多维表格的捕获技巧、读写流程、以及与采集联动的完整方案。
一、飞书多维表格 vs 普通表格
| 对比项 | 飞书多维表格 | 普通飞书表格 |
|--------|-------------|-------------|
| 数据结构 | 类似数据库(行记录+字段) | 类似Excel |
| 附件支持 | 可存图片、文件 | 不支持 |
| 视图 | 表格/看板/甘特图 | 仅表格 |
| 自动化 | 可触发飞书机器人 | 无 |
| 影刀操作难度 | 稍复杂(需定位记录) | 中等 |
适用场景:
- 采集的商品需要配图(用附件字段存储图片)
- 运营团队用多维表格做任务管理,需自动写入
- 需要按状态筛选记录(如“待采集”“已完成”)
二、多维表格的捕获要点
要点1:单元格定位
多维表格不是普通的 <table>,而是用 div 模拟的网格。
推荐定位方式:通过行记录的“记录ID”或“第一列文本”定位整行,再定位具体字段。
要点2:打开记录详情页
点击单元格会弹出侧边详情页,里面有所有字段的值。
采集策略:要么直接从网格中读取可见字段,要么打开详情页读取全部。
要点3:编辑单元格
双击单元格进入编辑模式,输入内容后按回车确认。
也可以用“快捷键”方式:选中单元格后直接输入(需确保单元格处于编辑状态)。
三、读取多维表格数据
场景:表格中有100条商品链接需要采集详情,状态字段为“待采集”。
操作步骤:
- 打开飞书多维表格(浏览器)。
- 筛选出“状态”为“待采集”的记录。
- 逐行读取“商品链接”字段。
- 采集详情后,更新该行的“状态”为“已完成”。
捕获元素清单(以飞书多维表格为例)
| 元素 | 定位参考 | 说明 |
|---|---|---|
| 表格容器 | //div[@data-testid='grid-view'] | 整个表格 |
| 行记录 | //div[@data-row-index] | 每条记录的行 |
| 字段单元格 | {当前行}//div[@data-field-id='xxx'] | 某列的值 |
| 筛选按钮 | //div[@aria-label='筛选'] | 打开筛选面板 |
| 状态字段的筛选选项 | 根据文本定位 | “待采集”选项 |
💡 飞书多维表格的class和data属性较稳定,建议用
data-field-id定位具体字段。
如何获取data-field-id?F12 → 选中某个单元格 → 找父级带data-field-id属性的元素。
读取行记录的通用XPath模板
# 获取所有行(每行是一个记录)
//div[@data-row-index]
# 在某行中,获取“商品链接”字段的值(假设field-id = fld_abc123)
{current_row}//div[@data-field-id='fld_abc123']//span[contains(@class,'text')]
# 获取“状态”字段的当前值
{current_row}//div[@data-field-id='fld_status']//span
四、更新多维表格单元格
场景:采集完成后,把“状态”字段从“待采集”改为“已完成”。
操作步骤:
- 选中目标行的“状态”单元格。
- 双击进入编辑模式。
- 清空原有内容(Ctrl+A → Delete)。
- 输入新内容“已完成”。
- 按回车确认。
影刀实现:
# 假设已定位到目标行的状态单元格元素 status_cell
# 1. 鼠标双击(进入编辑模式)
# 鼠标点击 → 点击模式“模拟移动点击”,点击次数2


# 2. 模拟按键 Ctrl+A 全选
# 模拟按键 → 组合键 Ctrl+A
# 3. 模拟按键 Delete 删除
# 模拟按键 → 按键 Delete
# 4. 输入文本
# 输入文本 → 内容“已完成”,输入方式“模拟输入”
# 5. 模拟按键 Enter 确认
# 模拟按键 → 按键 Enter
封装子流程 Common_UpdateCell:
- 输入参数:
in_row_element(行元素),in_field_id(字段ID),in_value(新值) - 内部:定位到单元格 → 双击 → 清空 → 输入 → 回车
五、写入附件(图片/文件)
多维表格的附件字段可以存图片。
场景:采集商品时,把商品主图下载后上传到多维表格。
操作步骤:
- 点击附件字段的“上传”区域。
- 在弹出的系统文件选择窗口中,输入文件路径(需用特殊技巧)。
- 或者先把图片复制到剪贴板,然后在附件区域粘贴。
推荐方法:用 执行JavaScript 模拟文件上传(比较复杂)。
简单方法:把图片URL存入文本字段,让人工手动上传(半自动)。
六、完整实战:多维表格驱动的采集流程
需求:多维表格中有“待采集商品”表,每天自动读取链接,采集价格和销量,回写状态。
流程设计:
A_Main
├─ 1. 打开飞书多维表格,筛选“状态”=“待采集”
├─ 2. 获取所有行记录 → {rows}
├─ 3. 列表循环 {rows},当前行 {row}
│ ├─ 读取“商品链接”字段 → {url}
│ ├─ 打开新标签页,访问 {url}
│ ├─ 采集价格和销量
│ ├─ 关闭标签页
│ ├─ 在 {row} 中更新“价格”字段
│ ├─ 在 {row} 中更新“销量”字段
│ ├─ 在 {row} 中更新“状态”字段 = “已完成”
│ └─ 调用 Common_RandomDelay (1,2)
└─ 4. 刷新页面,查看剩余待采集数量
关键点:
- 每处理完一行,立即更新状态,避免重复处理。
- 如果采集失败(如页面打不开),更新状态为“失败”并记录原因。
七、避坑指南
| 坑 | 说明 | 解决方法 |
|---|---|---|
| 字段定位失败 | data-field-id 不是固定的 | 每次打开表格时重新获取字段ID(用JS读取表结构) |
| 双击进入编辑失败 | 单元格被遮挡或未加载 | 先“滚动到元素”,再加0.3秒等待 |
| 输入后回车不生效 | 焦点丢失 | 回车前加“鼠标点击”单元格 |
| 筛选后行数不对 | 筛选未生效或异步加载 | 等待筛选结果出现(等待行数变化) |
| 附件上传困难 | 系统文件窗口难控制 | 改用粘贴方式:复制图片,在附件区域Ctrl+V |
八、影刀专属操作清单
| 操作 | 精确指令 | 说明 |
|---|---|---|
| 打开多维表格 | 打开网页 | 使用表格分享链接 |
| 获取行列表 | 获取相似元素列表 | 目标 //div[@data-row-index] |
| 读取单元格 | 获取元素文本 | 配合行元素+字段ID定位 |
| 双击编辑 | 鼠标点击 → 点击次数2 | 进入编辑模式 |
| 模拟全选+删除 | 模拟按键 Ctrl+A, Delete | 清空原有内容 |
| 输入新值 | 输入文本 或 模拟输入 | 内容为变量 |
| 回车确认 | 模拟按键 Enter | 保存修改 |
版本差异:社区版可以操作多维表格,但效率较低(需手动等待)。
创业版/企业版可配合云浏览器提高稳定性。
常见问题速查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 读取到的单元格内容为空 | 字段是富文本或附件 | 改用打开详情页方式读取 |
| 更新后表格不刷新 | 未保存 | 回车确认后,有时需要点击其他地方触发保存 |
| 筛选后列表未更新 | 筛选面板未关闭 | 筛选后关闭筛选面板,再获取行列表 |
| 行元素定位不准 | 表格有分组或隐藏行 | 展开所有分组,或用滚动确保行可见 |
| 频繁操作被限流 | 飞书风控 | 每次操作间隔2秒以上 |
推荐资源
- 飞书帮助中心:《多维表格字段ID获取方法》
- 影刀社区:搜索“多维表格”,有用户分享的模板
- 实操练习:创建一个多维表格,写一个影刀流程读取前10行并更新状态字段
最后一句:多维表格是飞书生态的“轻量级数据库”,配合影刀可以做很多自动化场景(任务管理、数据采集、审批流转)。
核心技巧是定位 data-field-id 和模拟双击编辑。调通后,运营团队可以实时看到采集进度,体验比Excel好很多。
作者:林焱
本文为《影刀RPA学习手册》系列文章之番外篇。系列已全部更新,感谢陪伴!
