# 影刀RPA零基础教程:Excel表格

影刀RPA零基础教程:Excel表格读写操作指南——读取/写入/追加/清空

采集了1000条商品数据,要存到Excel里。
问题:写进去格式乱了、追加到新行写成了覆盖、读取表格时总报错。
根源:没搞清楚影刀Excel指令的四种核心操作。
四兄弟:读取、写入、追加、清空。


一、Excel指令全家福

picture.image

指令作用常用场景
打开Excel打开一个xlsx文件,返回Excel对象所有操作的前提
读取行读取指定行的内容,返回列表遍历表格数据

picture.image | 写入行 | 覆盖写入某一行 | 将数据写入空表 | | 追加行 | 在表格最后一行后面新增一行 | 边采集边写入 | | 清空行 | 清空某一行(保留表头) | 重置表格内容 | | 保存Excel | 保存并关闭文件 | 最后一定要做 | | 获取总行数 | 返回表格已有数据行数 | 计算追加位置 |

picture.image

位置:右侧指令面板搜索“Excel”即可找到。


二、读取Excel——遍历已有数据

场景:Excel里有100个商品链接,要逐个打开采集。

操作步骤

  1. 拖入“打开Excel”,选择文件路径(最好用绝对路径,如 C:\data\urls.xlsx)。

picture.image 2. 输出变量命名为 {excel_obj}(Excel对象)。

  1. 用“获取总行数”知道有多少行(不包括表头)。
  2. 用“固定次数循环”从第2行开始读(假设第1行是表头)。
  3. 循环内用“读取行”,行号变量 {i},输出到列表变量 {row_data}
  4. 从列表里取第一列(链接)存到 {url}

picture.image 7. 处理完成后,用“关闭Excel”释放文件。

picture.image

# 读取Excel模板

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/8862f197ce3e4289a1f8bf4acf542dfb~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781770166&x-signature=kIWPfm5do2sYSPC%2B4aR%2Bll2FDjs%3D)

# 1. 打开Excel
#    文件路径:C:\data\product_urls.xlsx
#    输出到:excel_obj

# 2. 获取总行数
#    Excel对象:{excel_obj}
#    输出到:{total_rows}

# 3. 固定次数循环,循环次数 = {total_rows} - 1(减去表头)
#    循环变量:{row_num},起始值 = 2(第一行是表头)

# 4. 读取行
#    Excel对象:{excel_obj}
#    行号:{row_num}
#    输出到:{row_data}(列表类型)

# 5. 取出第一列(链接)
#    用“获取列表指定位置的元素”,位置0,输出到 {url}

# 6. 执行采集逻辑(打开URL,采集数据...)

# 7. 循环结束

# 8. 关闭Excel
#    Excel对象:{excel_obj}
#    保存:是

易错点:循环结束后一定要“关闭Excel”,否则文件被占用,下次写入会报错。

picture.image

三、写入行——从零开始创建数据

场景:采集新数据,要写入一个全新的Excel文件。

操作步骤

  1. 先用“创建Excel”或手动建一个xlsx文件,有表头(如“商品名称”“价格”“链接”)。
  2. “打开Excel”后,用“写入行”按行号写入。
  3. 注意:写入行会覆盖该行原有内容,所以适合从第2行开始顺序写入。
# 写入行示例(循环采集后写入)

# 1. 打开Excel(文件已存在,已有表头)
#    路径:C:\data\result.xlsx
#    输出:excel_obj

# 2. 设置变量 {current_row} = 2(从表头下一行开始)

# 3. 列表循环 {product_list}(采集到的商品数据)

# 4. 准备一行数据:将标题、价格等组合成列表
#    例如:["手机壳", "29.9", "https://xxx.com"]

# 5. 写入行
#    Excel对象:{excel_obj}
#    行号:{current_row}

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/a72b1d7c6f64452a834a1a5a3f92705c~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781770166&x-signature=k5wcUM0w%2FDD5KP0B90FxEyizjzc%3D)
#    写入内容:{row_data}(列表)

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/a33fcf9a685c44d0a5e22929cd21c18e~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781770166&x-signature=skS3E9KTfsAM1ncuJqjCZ%2B50utk%3D)
# 6. {current_row} = {current_row} + 1

# 7. 循环结束

# 8. 保存并关闭Excel

写入的内容必须是列表,列表长度应等于Excel列数。
如果只写一列,也要写成 ["值"],不要直接写字符串。


四、追加行——最简单的边采边写

场景:不确定有多少条数据,每采集一条就写到Excel末尾。

操作步骤

  1. 打开Excel。
  2. 每次采集到一条数据后,直接调用“追加行”指令。
  3. 不需要自己计算行号,系统自动在最后一行的后面加一行。
# 追加行(推荐新手用)

# 打开Excel后

# 列表循环 {product_list}
#   - 提取标题、价格 → 组合成列表 {new_row}
#   - 追加行
#       Excel对象:{excel_obj}
#       写入内容:{new_row}
#   - (不需要关心行号)

# 关闭Excel

优点:不用管当前写到第几行,不会覆盖已有数据。
缺点:如果循环内有错误导致重复执行,会追加重复行(但在采集场景下通常没问题)。

💡 追加 vs 写入
追加 = 在最后加一行(永远不覆盖)
写入 = 在指定行覆盖写入(适合更新固定位置的汇总数据)


五、清空行——重置表格内容

场景:每天跑流程前,需要清空昨天的数据,但保留表头。

操作步骤

  1. 打开Excel。
  2. 用“获取总行数”知道有多少行(比如100行)。
  3. 用固定次数循环从第2行到第100行,依次“清空行”。
  4. 或者一次性用“删除行”(但删除行会让行号变化,复杂)。
# 清空所有数据行(保留表头)

# 1. 打开Excel
# 2. 获取总行数 → {total_rows}

# 3. 如果 {total_rows} > 1
#     固定次数循环,循环次数 = {total_rows} - 1
#     循环变量:{row_num},从2开始
#     清空行:Excel对象、行号{row_num}
#   循环结束

# 4. 保存并关闭

更简单的清空方法
删除原文件,用“创建Excel”重新生成一个带表头的新文件。
推荐这种做法,避免清空循环出错。


六、实战:采集淘宝商品列表写入Excel

完整流程

  1. 准备Excel表头(手动创建或代码创建):

    • 列A:商品标题
    • 列B:价格
    • 列C:月销量
    • 列D:商品链接
  2. 影刀流程

# 主流程

# 1. 打开Excel(路径:C:\taobao_data.xlsx)
#    输出:excel_obj

# 2. 采集第一页商品
#    - 获取相似元素列表(商品卡片)
#    - 循环每个卡片
#      - 提取标题、价格、销量、链接
#      - 组装成列表:["标题", "价格", "销量", "链接"]
#      - 追加行(写入Excel)

# 3. 翻页(用按钮判断法)
#    条件循环(下一页存在)
#      - 点击下一页
#      - 等待商品列表出现
#      - 重复采集循环(追加行)

# 4. 所有页面采完后,关闭Excel(保存)

注意:在循环体内频繁写入Excel会拖慢速度。
优化:先把数据存到一个列表变量(如 {all_data}),循环结束后一次性写入。
但一次性写入需要自己算行号,推荐新手用追加行,简单不易错。


七、常见问题速查

问题原因解决方法
打开Excel报“文件不存在”路径写错或文件被占用用绝对路径,关闭已打开的Excel
写入行后Excel内容为空忘记保存关闭最后要“关闭Excel”并勾选保存
追加行写到了错误的位置之前写入过数据,表格有空白行先清空多余行,或新建文件
写入的内容是“对象类型”直接写了变量而不是列表用“创建列表”指令包一层
读取行返回空行号从0开始数?行号从1开始,表头是第1行
循环内频繁操作Excel变慢每次写入都触发IO收集一批(如10条)再写入

影刀专属操作清单

指令精确名称关键参数
打开Excel打开Excel文件路径、输出Excel对象
读取行读取行Excel对象、行号(整数)、输出列表
写入行写入行Excel对象、行号、写入内容(列表)
追加行追加行Excel对象、写入内容(列表)
清空行清空行Excel对象、行号
获取总行数获取总行数Excel对象、输出整数
关闭Excel关闭ExcelExcel对象、是否保存

版本差异:社区版同时只能打开一个Excel文件,多个文件需要依次处理。
创业版/企业版支持同时操作多个Excel。


推荐资源

  • 影刀官方帮助中心:《Excel自动化完整教程》
  • 影刀学院视频:《Excel读写——从入门到实战》(约22分钟)
  • 模板搜索:“电商数据采集+Excel存储”,下载后看标准写法

最后一句:Excel是数据采集的终点站。
新手先学会“打开-追加行-关闭”三板斧,够用99%的场景。
进阶再学“读取行”做批量操作。记得用完一定要关文件。


作者:林焱

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

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