ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

影刀RPA新手教程:按条件拆分表格——一个文件变多个分表

影刀RPA新手教程:按条件拆分表格——一个文件变多个分表 影刀RPA新手教程按条件拆分表格——一个文件变多个分表运营部每个月给我的总表里混着五个店铺的数据要按店铺拆成五个分表分给五个对接人。以前的做法是Excel筛选、复制、粘贴、另存一套下来二十分钟月底做汇总的时候要来三遍。学会影刀RPA之后这个活儿变成拖几个指令、点一次运行两万行大表十几秒拆完。按条件拆分表格是新手学影刀RPA时最能立刻兑现价值的一个项目不需要网页自动化、不需要Python全流程只用读取、循环、判断、写入这几样基础指令。这篇就带你从零做出一个一个文件变多个分表的拆表机器人每一步精确到配置哪个按钮、填哪个参数。我是非技术出身影刀RPA实操两年多第一次写拆表流程时踩的坑也一并分享给你文末有速查表。拆分思路先行——先把逻辑想清楚再拖指令拆表的本质是三步**读入全部数据 → 按条件分组 → 每组写成一个文件。**对应到影刀RPA的指令链路就是【打开/新建Excel】打开总表得到Excel对象【读取Excel内容】读取方式选已使用区域内容整表读成二维列表按某一列的值分组比如B列店铺名每组存进各自的二维列表循环每个分组【打开/新建Excel】新建文件 →【写入内容至Excel工作表】写入 →【关闭Excel】拆成多个Sheet页还是拆成多个文件取决于你要交付什么。拆Sheet页用【添加Sheet页】循环写入拆独立文件就是每个分组走一遍新建-写入-关闭。两条路我都会讲先讲拆文件这条主线路。这里提前说一个理解上的关键点【读取Excel内容】读出来的区域内容是二维列表类型也就是说你手里拿到的已经不是Excel了是一个内存里的列表。分组操作全在列表上做Excel对象只在读和写两头出现。理解了这一点后面所有指令的参数你都不会懵。读取与分组——用循环加If把数据分堆先读数据【读取Excel内容】的读取方式下拉选已使用区域内容Excel对象选第一步的变量结果保存到变量全部数据。注意勾不勾读取单元格显示的内容的区别默认情况下整数会被读成小数1读成1.0日期值会读成日期对象勾选后返回的是你眼睛看到的内容——拆表这种场景我建议勾上省掉一堆类型换算。分组用两种打法按数据量选打法一循环加If直观新手首选# 指令【ForEach列表循环】循环 全部数据跳过第一行表头从第2项开始# 循环体# 指令【If条件判断】条件 item[1] 店铺A # 第2列是店铺名下标从0数# 成立分支 → 指令【添加列表项】把 item 加进 列表A# 否则分支 → 【If】item[1] 店铺B → 加进 列表B# ……店铺多就继续嵌套# 店铺超过三五个嵌套If会写到你怀疑人生换打法二打法二字典分组推荐店铺数不固定也能跑# 指令【插入代码段(Python)】输入 全部数据二维列表# 输出 分组结果字典店铺名 → 该店的二维列表defmain(args):dataargs.get(全部数据)headerdata[0]# 第一行是表头单独存groups{}# 分组字典forrowindata[1:]:# 从第二行开始遍历数据行keystr(row[1])# 第2列做分组键转字符串防类型坑ifkeynotingroups:groups[key][header]# 每个分表都带上表头groups[key].append(row)returngroups字典是影刀RPA变量类型里最该早学的一个键放分组条件值放该组的行列表。第一次做的时候我用店铺名做键结果总表里有些行末尾带了个看不见的空格店铺A和店铺A 成了两个组拆出来多了一个只有三行的分表。后来养成了先清洗再分组的习惯读进来的文本统一清掉前后空格。写出分表——三个指令的精确配置分组完成后循环字典的每个键值对逐个生成分表【打开/新建Excel】启动方式选新建Excel路径填 D:\拆分结果\店铺A.xlsx文件名用循环项的键拼出来驱动方式选自动检测或openpyxl是否可视化取消勾选——批量写文件不需要你看着【写入内容至Excel工作表】Excel对象选新建的那个变量写入范围选区域从单元格A1开始写入方式选覆盖写入内容直接放该组的二维列表变量。这里有个参数必须认识“格式设置为文本的列”订单号这类纯数字长文本一定要在这里把列号填进去多列用英文逗号分隔否则科学计数法能把订单号全毁掉【关闭Excel】关闭并保存一个分表落盘如果想拆成同一个文件里的多个Sheet页链路换成【打开/新建Excel】打开总表 → 循环分组 →【添加Sheet页】指令Sheet页名称填循环键添加方式选作为最后一个sheet页 →【写入内容至Excel工作表】时Sheet页名称参数填同名 →【关闭Excel】。配套的【重命名Sheet页】【删除Sheet页】【拷贝Sheet页】支持当前工作簿内拷贝或拷贝到另外的工作簿也在同一个指令集里做模板Sheet填充数据的套路时拷贝Sheet页很好用。数据量大到几万行、又不想碰Python的话还有一条纯指令路线【数据表格导入】把Excel导进内存表 →【循环数据表格内容】循环方式选循环行 → 按行判断分发到多个数据表格 → 每个表【数据表格导出】成一个文件。内存表写入比反复开关Excel快得多这是我最常用的提速手段。元素定位四合一——拆完的表总要送出去拆分表格本身用不到定位但拆完的数据往往要传到系统里这套基本功早晚要用一次讲全。影刀RPA的定位四件套元素捕获点捕获元素按钮鼠标移过去出现橙色边框后点击确认、XPath六种写法、CSS选择器八种语法、正则表达式三个场景抽数字、抢单号、清洗文本。# 捕获元素上传分表的文件选择框input框 //input[typefile] # 捕获元素店铺下拉选项用文本模糊匹配 //*[contains(text(),店铺A)] # CSS选择器等价于上面的id定位 #shop-select选型一句话**属性唯一用CSS要文本匹配或层级参照用XPath。**上传文件框这种页面元素先等待元素出现再操作是网页自动化里保稳定的第一纪律。变量与流程控制——拆表流程的骨架这个项目把变量三兄弟全用上了列表行数据、字典分组、字符串路径拼接。流程控制的标准骨架ForEach列表循环遍历分组字典的键For次数循环按行数分批写入避免一次写两万行卡界面While条件循环配合【读取Excel总行数】变量控制处理进度If条件判断分组条件的核心Try-Catch包住每个分表的写入段单个分表失败不影响其他分表Catch里【打印日志】记下失败的店铺名Try-Catch是新手最容易忽略的一环。我有次拆表跑到第4个店铺时文件被同事打开占用整个流程中断前3个白拆。加上Try-Catch之后被占用的会记进失败清单流程结束后我可以一键重试失败项稳定性完全不是一个量级。数据处理与进阶协同——拆完之后的自动流转分表落盘只是开始进阶链路把流程推到全自动【HTTP请求】把分表上传到内部系统接口Python协同用Pandas在拆分前先做数据清洗和透视比如顺手算好每个店铺的日汇总行插在表尾OCR识别应对截图版表格ADB手机自动化处理只有APP能看到的报表数据。系统联动层面【发送飞书消息】把分表文件发到对应的店铺群、邮件自动投递给对接人、定时任务挂每月1号凌晨自动跑——从此拆表这件事在你的待办里彻底消失。平台实战里的同款逻辑小红书多账号数据按账号拆分、拼多多多店铺商品表按店铺拆分用的都是这一套读入-字典分组-循环写出的骨架只是分组键和数据源不同。工程化规范与调试技巧拆表流程做成模板只需三步分组键的列号做成流程参数输入参数分组列号默认1、输出目录做成参数、店铺清单从配置表读取。以后任何按X列拆表的需求改个参数就能交付。调试三板斧断点单步执行看每组数据对不对、变量面板盯字典的键有没有多出来的脏键、【打印日志】在每个分表落盘后输出文件路径和行数。运行前在日志里输出本次共拆出N个分表和分组字典长度对得上才算闭环。版本选择社区版每天30分钟时长跑小表没问题两万行级的定时任务建议创业版。易错速查表现象原因解法拆出来多了几个奇怪分表分组键带空格或类型不一先清洗文本键统一转字符串订单号变科学计数法写入时被当数字格式设置为文本的列填列号文件打开报错被占用对接人提前打开了文件Try-Catch捕获失败清单重试循环删除行导致漏行删除后行号前移倒序循环或标记后统一删表头写进了数据区分组时没带表头也没单独写每组第一行插入header学习资源与延伸阅读完整拆表流程的源码我放在代码仓库 home.linyan.cloud可以直接参考改造字典分组脚本和模板化参数都封装好了改成你的列号和路径就能跑。新手建议同时把影刀学院Excel自动化章节过一遍【读取Excel内容】【写入内容至Excel工作表】两条指令的官方文档里都带了可照抄的示例流程。#影刀RPA #RPA自动化 #表格处理 #Excel #循环操作作者林焱
返回列表