影刀RPA新手教程:飞书表格自动读写与消息通知联动

做电商数据监控时,每天要把采集到的数据同步到飞书表格,或者在数据异常时自动发消息到飞书群。 影刀可以直接操作飞书表格(类似Excel),也能调用飞书机器人发通知。

picture.image 核心流程:影刀采集数据 → 写入飞书表格 → 判断异常条件 → 发送飞书消息通知。

一、飞书文档与影刀的对接方式

picture.image 飞书表格(多维表格或电子表格)可以通过两种方式被影刀操作:

方式原理适用场景
导出CSV/Excel从飞书下载到本地,操作完再上传简单读写,不需要实时同步

picture.image | 飞书开放API | 直接调用接口读写表格 | 实时同步,适合自动化监控 |

本文重点:导出CSV/Excel方式(最稳定,无需API开发)。 飞书表格支持导出为Excel文件,影刀处理后再导入回飞书。

社区版可用,不需要额外的API权限。

picture.image


二、步骤1:从飞书导出表格到本地

picture.image

操作步骤

  1. 打开飞书网页版或桌面端
  2. 进入目标表格,点击右上角“...” → “导出” → “导出为Excel”
  3. 设置导出的文件路径(如 C:\飞书数据\原始数据.xlsx

picture.image 4. 影刀读取这个Excel文件进行处理

# 在影刀中,先用“网页自动化”打开飞书表格并导出
# 注意:需要先登录飞书

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/134d843ce9bd49c88b0e9f92612114f6~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781666684&x-signature=3Jpo2tVKUQZnLSN7%2FpQ0FMqZzTA%3D)

# 打开飞书表格(替换为实际表格链接)
打开网页:"https://your-domain.feishu.cn/sheets/xxxxx"

# 等待表格加载完成

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/e832ff3cc8a54f6b99019d8fdc71dbc6~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781666684&x-signature=PAmzRvDNmL%2Ba1%2FBVCGY564V%2Fjs4%3D)
等待元素出现://div[@class='sheet-view'],超时10# 点击导出菜单(需要捕获元素)
点击元素://div[@class='toolbar-btn' and @aria-label='更多操作']
点击元素://div[contains(text(),'导出')]
点击元素://div[contains(text(),'Excel')]

# 等待下载完成(固定等待或检测下载文件夹)
固定等待:3

更简单的方式: 手动导出Excel到固定路径,影刀直接读取,省去自动化导出的麻烦。

# 影刀直接读取本地Excel(手动导出后的文件)
Excel Workbook打开:文件"C:\飞书数据\表格导出.xlsx"
读取区域数据到列表 → 存入“表格数据”
Excel Workbook关闭

三、步骤2:影刀处理数据

以“商品价格监控”为例:采集到的价格低于成本价时,标记为异常。

# 假设从飞书表格读取到的数据格式:

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/12a884398b9e476a8eeb9af9d0c7ee03~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781666684&x-signature=OHkRlui2Iu5jc2mu0UrwvI7%2Bhx0%3D)
# 列A:商品名称,列B:当前售价,列C:成本价,列D:状态(待更新)

# 处理逻辑:对比B列和C列,如果B < C,在D列写“价格异常”

Excel Workbook打开:文件"C:\飞书数据\商品价格表.xlsx" → 工作簿

# 读取所有数据(假设有表头)
读取区域数据到列表:起始"A1" → 存入“全部数据”

设置变量:新数据列表 = []
设置变量:异常商品列表 = []

# 遍历每一行(跳过表头)
设置变量:行号 = 1  # 从第2行开始处理
循环列表:全部数据[1:](跳过第一行表头)
    当前售价 = 当前行[1]  # B列
    成本价 = 当前行[2]    # C列
    
    如果 当前售价 < 成本价
        当前行[3] = "价格异常"
        异常商品列表.append(当前行[0])  # 记录商品名
    否则
        当前行[3] = "正常"
    
    新数据列表.append(当前行)

# 写回Excel(覆盖原数据,保留表头)
写入行数据到表格:起始"A1",行数据=全部数据[0](表头)

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/f75b7c532f7b4f3180ca2429098fe9ec~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781666684&x-signature=PwgLFx285K6eF2DguASq8YjfywQ%3D)
循环列表:新数据列表
    追加行到表格:行数据={当前行}

Excel Workbook保存并关闭

四、步骤3:写入更新后的数据回飞书

处理完本地Excel后,需要把数据导回飞书表格。

方法1:手动导入(推荐稳定)

影刀打开飞书表格 → 点击“导入” → 选择本地Excel → 覆盖

# 打开飞书表格
打开网页:"https://your-domain.feishu.cn/sheets/xxxxx"

# 点击“导入”按钮
点击元素://div[contains(text(),'导入')]
固定等待:1# 点击“上传文件”
点击元素://input[@type='file'](需要捕获)
上传文件:文件路径"C:\飞书数据\商品价格表_更新.xlsx"

# 等待导入完成
等待元素消失://div[contains(text(),'上传中')],超时20秒

输出日志:"数据已同步到飞书表格"

方法2:直接在线编辑(不推荐,容易失败)

影刀直接操作飞书表格的单元格,但飞书是网页版,元素定位复杂且经常变。


五、步骤4:发送飞书消息通知(机器人)

当检测到异常数据时,自动发消息到飞书群。

前置准备:创建飞书机器人

  1. 在飞书群里点击“设置” → “群机器人” → “添加机器人”
  2. 选择“自定义机器人”
  3. 设置机器人名称,获取 Webhook地址(格式:https://open.feishu.cn/open-apis/bot/v2/hook/xxx
  4. 保存这个地址

影刀发送消息

# 假设有异常商品列表(如["苹果手机","华为手表"])

如果 异常商品列表的长度 > 0
    # 构造消息内容
    设置变量:消息内容 = "【价格监控告警】\n以下商品当前售价低于成本价:\n"
    
    循环列表:异常商品列表
        消息内容 = 消息内容 + "- " + {当前列表项} + "\n"
    
    消息内容 = 消息内容 + "请及时调整价格。"
    
    # 发送HTTP请求到飞书
    发送HTTP请求
        请求方式:POST
        URL:{飞书机器人webhook地址}
        请求头:Content-Type: application/json
        请求体:{"msg_type": "text", "content": {"text": "{消息内容}"}}
    
    输出日志:"已发送飞书通知"

发送更丰富的消息格式(卡片消息):

{
    "msg_type": "interactive",
    "card": {
        "config": {
            "wide_screen_mode": true
        },
        "header": {
            "title": {
                "tag": "plain_text",
                "content": "价格异常告警"
            },
            "template": "red"
        },
        "elements": [
            {
                "tag": "div",
                "text": {
                    "tag": "lark_md",
                    "content": "发现 **{异常数量}** 个商品价格异常"
                }
            },
            {
                "tag": "action",
                "actions": [
                    {
                        "tag": "button",
                        "text": {
                            "tag": "plain_text",
                            "content": "查看详情"
                        },
                        "type": "primary",
                        "url": "https://your-feishu-table-link"
                    }
                ]
            }
        ]
    }
}

六、完整示例:每日价格监控+异常告警

# A_Main
输出日志:"=== 飞书价格监控开始 ==="

# 1. 手动导出飞书表格到本地(或用影刀自动化导出)
# 假设已经手动导出到 C:\price_data.xlsx

# 2. 读取数据并检查异常
调用子流程:C01_CheckPrice
    输入参数:文件路径="C:\price_data.xlsx"
    输出参数:异常商品列表, 更新后的数据列表

# 3. 如果有异常,发送飞书通知
如果 异常商品列表的长度 > 0
    调用子流程:E01_SendFeishuAlert
        输入参数:异常列表={异常商品列表}

# 4. 写回Excel并导入飞书(手动或自动化)
调用子流程:D01_WriteBackToExcel
    输入参数:数据={更新后的数据列表},路径="C:\price_data_updated.xlsx"

# 5. 可选:自动上传回飞书
调用子流程:D02_UploadToFeishu
    输入参数:文件路径="C:\price_data_updated.xlsx"

输出日志:"=== 监控完成 ==="


# ========== C01_CheckPrice ==========
Excel Workbook打开:文件路径={文件路径} → 工作簿
读取区域数据到列表:起始"A1" → 数据
Excel Workbook关闭

设置变量:异常列表 = []
设置变量:新数据 = [数据[0]]  # 保留表头

循环列表:数据[1:](从第二行开始)
    商品名 = 当前行[0]
    售价 = 当前行[1]
    成本 = 当前行[2]
    
    如果 售价 < 成本
        当前行[3] = "异常"
        异常列表.append(商品名)
    否则
        当前行[3] = "正常"
    
    新数据.append(当前行)

设置输出参数:异常商品列表 = 异常列表
设置输出参数:更新后的数据列表 = 新数据


# ========== E01_SendFeishuAlert ==========
设置变量:内容 = "发现 {异常列表的长度} 个商品价格异常:\n"
循环列表:异常列表
    内容 = 内容 + "· " + 当前项 + "\n"

发送HTTP请求:POST, webhook地址, body={"msg_type":"text","content":{"text":内容}}
输出日志:"通知已发送"


# ========== D01_WriteBackToExcel ==========
Excel Workbook打开:文件路径={路径},自动创建 → 工作簿
写入行数据到表格:起始"A1",行数据={数据[0]}(表头)
循环列表:数据[1:]
    追加行到表格:行数据=当前行
Excel Workbook保存并关闭


# ========== D02_UploadToFeishu(可选) ==========
# 打开飞书表格页面
打开网页:"https://your-table-link"
# 点击导入按钮
点击元素://div[contains(text(),'导入')]
# 上传文件
上传文件://input[@type='file'],路径={文件路径}
等待元素消失://div[contains(text(),'上传中')]
输出日志:"已上传至飞书"

七、飞书表格写入的替代方案:使用飞书API(进阶)

如果需要实时读写飞书表格而不依赖Excel导入/导出,可以使用飞书开放API。 需要企业版或一定开发能力。

# 用“发送HTTP请求”调用飞书API
# 1. 先获取tenant_access_token(需要应用凭证)
# 2. 调用 sheets/v2/spreadsheets/{spreadsheetToken}/values_batch_update

# 这个方案较复杂,建议新手先用Excel导入导出。

八、易错速查表

问题原因解决方法
飞书表格导出的Excel格式错乱飞书导出设置问题导出时选“Excel工作簿(.xlsx)”
上传回飞书时覆盖了其他数据导入时选了错误的范围导入前先清空目标区域,或新建工作表
飞书机器人没收到消息webhook地址错误或网络问题在浏览器测试webhook:用Postman发送POST请求
消息内容过长飞书单条消息限制(约4000字符)拆分多条发送,或改用卡片消息
自动化导出失败飞书页面元素变化手动导出,或改用API

九、飞书机器人消息模板速查

// 纯文本消息
{"msg_type":"text","content":{"text":"这是文本内容"}}

// 富文本消息(支持加粗、链接)
{"msg_type":"post","content":{"post":{"zh_cn":{"title":"标题","content":[[{"tag":"text","text":"内容"}]]}}}}

// 卡片消息(可带按钮)
{
  "msg_type": "interactive",
  "card": {
    "header": {"title": {"tag": "plain_text", "content": "告警"}},
    "elements": [{"tag": "div", "text": {"tag": "lark_md", "content": "详情"}}]
  }
}

推荐资源

  • 飞书开放平台文档:open.feishu.cn(搜索“机器人”或“表格”)
  • 影刀官方帮助中心:搜索“飞书”有案例流程
  • 我的经验:先用手动导出/导入的方式跑通逻辑,再考虑自动化导出和API,不要一上来就搞复杂

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论