影刀RPA新手教程_Excel表格读写操作完全指南
影刀RPA新手教程:Excel表格读写操作完全指南——读取、写入、追加与清空的正确姿势
做自动化,大多数流程的终点都是表格。
采集的数据要存表格,批量读取的账号要来自表格,处理完的结果要写回表格。Excel操作看起来简单,实际踩坑点很多——选错一个指令,数据就被覆盖了。
我也是非技术出身,这些坑基本都踩过一轮。这篇文章把这些经验一次性讲清楚。
一、先搞清楚四个核心指令
影刀和表格相关的指令不少,但最常用的就四个:
| 指令名 | 作用 | 关键特点 |
|---|---|---|
| 读取 Excel | 把表格内容加载到内存 | 返回表格对象,后面才能操作 |
| 写入行数据 | 向表格末尾追加一行 | 不会覆盖已有数据 |
| 追加行数据 | 同上,功能几乎一样 | 和写入行数据二选一即可 |
| 清空表格 | 删除所有数据 | 标题行可以保留也可以删除 |
关键区别:
“写入行数据” → 在表格最后追加,安全。
“写入到指定单元格” → 覆盖指定位置,用之前要想清楚会不会把已有数据弄丢。
新手最容易出的错:应该追加数据,结果用了覆盖写入,把之前采到的数据全冲掉了。
二、读取表格的完整流程
步骤1:拖入"读取Excel"指令
右侧指令面板搜索"读取Excel",拖到画布。
在详情面板配置两个参数:
- 文件路径:点击浏览按钮,选你的Excel文件。路径里如果有中文,用双引号包起来
- 包含标题行:勾上(如果第一行是字段名)。不勾的话影刀会把第一行当数据读
店群矩阵自动化突破运营极限!
步骤2:获取表格数据
指令执行后会返回一个"表格对象",影刀里叫excel_object。
拿到这个对象后,你可以:
- 读取指定单元格的值
- 循环遍历所有行
- 获取行数和列数
# 读取拼多多商品列表模板Excel读取Excel("D:\电商数据\商品列表模板.xlsx")->表格对象# 获取行数(不含标题行)获取表格行数(表格对象)->总行数# 获取第2行、第1列的值(第1行是标题)获取单元格值(表格对象,2,1)->第一条商品名称三、循环遍历表格做批量操作
这是最常见的场景——表格里有一堆待处理数据,需要逐行读取、逐条操作。
标准写法
# 账号批量登录示例读取Excel("D:\账号信息.xlsx")->账号表 获取表格行数(账号表)->总行数 遍历行索引(1,总行数):# 从第2行开始,第1行是标题账号=获取单元格值(账号表,当前行,1)密码=获取单元格值(账号表,当前行,2)输出日志(f"正在处理第{当前行}个账号:{账号}")# 执行登录操作(你的业务逻辑)打开网页("https://login.example.com")输入文本("账号输入框",账号)输入文本("密码输入框",密码)点击元素("登录按钮")等待元素出现("首页标识",5秒)# 把登录结果写回表格(可选)如果 登录成功:写入单元格(账号表,当前行,3,"成功")否则:写入单元格(账号表,当前行,3,"失败")保存Excel(账号表,"D:\账号信息.xlsx")常见的遍历错误
错误1:遍历的是行号不是行索引
遍历行索引从1开始对应第2行(第1行是标题),不用自己算偏移。
错误2:循环里每次都重新读Excel
不要在循环体里面放读取Excel指令。读一次,循环操作表格对象就够了。每次读会重置数据。
错误3:忘记保存
修改了单元格值后,必须调保存Excel或导出表格。不保存的话,文件不会有任何改动。
四、写入数据到表格
场景A:采集到的数据逐条追加
# 商品数据采集示例打开网页("https://search.pinduoduo.com/")输入文本("搜索框元素","连衣裙")点击元素("搜索按钮")等待元素出现("商品列表",3秒)# 创建空表格对象(不存在文件则新建)新建Excel->采集结果表 写入行数据(采集结果表,["商品名称","价格","销量","店铺名"])# 循环采集获取相似元素列表("商品卡片列表")->商品列表 遍历列表(商品列表,当前商品):商品名=获取元素文本(当前商品//商品名称)价格=获取元素文本(当前商品//商品价格)销量=获取元素文本(当前商品//商品销量)店铺=获取元素文本(当前商品//商品店铺)写入行数据(采集结果表,[商品名,价格,销量,店铺])# 保存导出表格(采集结果表,"D:\商品数据_20260609.xlsx")这里用写入行数据每次追加一行,不会覆盖前面的数据。
场景B:更新特定行和列
如果只需要改某个具体的单元格,用写入单元格值:
写入单元格值(表格对象,行号,列号,"新值")适合做状态标记——比如第3列是"处理状态",处理完一条就在对应行写上"已完成"。
五、清空表格的正确姿势
清空表格指令有个选项:“保留标题行”。
- 勾上:删除所有数据行,保留第1行的字段名。适合每次运行重新采集的场景
- 不勾:全部清空,包括标题。适合清空后重新写标题的场景
# 每次运行前清空数据但保留标题读取Excel("D:\每日数据.xlsx")->报表表 清空表格(报表表,保留标题行=True)# 然后开始写入今天的采集结果写入行数据(报表表,["2026-06-09","连衣裙",128.00,"已上架"])写入行数据(报表表,["2026-06-09","T恤",89.00,"待上架"])保存Excel(报表表,"D:\每日数据.xlsx")六、文件路径与权限问题
这是最容易排查又最容易被忽略的地方。
路径中文问题:
temu店群自动化报活动案例
影刀支持中文路径,但如果路径里有特殊字符(空格、括号等),建议先在Python代码指令里处理:
# 在Python代码指令里处理路径importos file_path=r"D:\电商运营\数据(2026)\每日报表.xlsx"# 检查文件是否存在ifos.path.exists(file_path):result=file_pathelse:raiseException(f"文件不存在:{file_path}")文件被占用:
写到一半报"权限不足"或"文件被占用",通常是因为你同时在Excel里打开了这个文件。
解决:关掉Excel进程,或者在写入前加一步关闭Excel进程。
路径不存在:
保存路径的上级目录必须存在。比如你要保存到D:\数据\2026\报表.xlsx,你得确保D:\数据\2026\这个文件夹存在。
七、多表格协同操作
实际项目里经常需要两个表格配合——一个存原始数据,一个存处理结果。
# 从源表读数据,处理后写入目标表读取Excel("D:\源数据.xlsx")->源表 新建Excel->结果表 写入行数据(结果表,["商品ID","原始价格","折扣后价格","备注"])获取表格行数(源表)->总行数 遍历行索引(1,总行数):ID=获取单元格值(源表,当前行,1)原价=获取单元格值(源表,当前行,2)# 业务计算:8折折后价=round(原价*0.8,2)写入行数据(结果表,[ID,原价,折后价,"已计算"])导出表格(结果表,"D:\折扣结果.xlsx")八、易错速查
| 错误 | 后果 | 正确做法 |
|---|---|---|
| 用"写入到指定单元格"追加数据 | 只改了一个格子,其他数据没写进去 | 用"写入行数据"追加整行 |
| 循环里反复读取Excel | 每次重置表格对象,之前的修改丢失 | 读一次,循环操作对象 |
| 修改后没调用保存 | 数据没写入文件 | 最后必须调"保存Excel"或"导出表格" |
| 遍历时算错起始行 | 把标题当成数据处理 | 行索引从1开始(跳过第1行标题) |
| Excel文件正被其他程序打开 | 写入报权限错误 | 关掉Excel后再运行 |
九、推荐资源
- 影刀学院课程:《Excel数据处理专题》,路径:客户端→学院→搜索"Excel"
- 如果要在Python里做复杂表格处理(比如合并多个Excel、数据透视),Pandas比影刀内置指令更灵活。参考:Pandas常用函数速查
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
