ARTICLE DETAIL

资讯详情

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

影刀RPA实操指南:自动生成带样式的报表——颜色、边框与冻结首行

影刀RPA实操指南:自动生成带样式的报表——颜色、边框与冻结首行 影刀RPA实操指南自动生成带样式的报表——颜色、边框与冻结首行流程跑完导出的Excel全是白底黑字运营同事第一句话就是表头给我加粗染个色、边框画一下、首行冻结一下不然根本没法看。报表是给人看的样式就是报表的一部分这活儿不该每天早上手动做十分钟。用影刀RPA自动生成带样式的报表核心就三件事用【设置格式】指令处理颜色字体边框用【冻结首行】指令锁表头再用一个xlwings小脚本兜底处理【设置格式】搞不定的精细边框。这篇把整条链路拆到按钮级你照着拖就能复刻我跑了两年多的日报流程。我是做电商运营出身非技术背景影刀RPA用了两年多下面这些配置细节都是踩坑踩出来的。打开/新建Excel——样式操作的前置准备所有Excel样式指令都基于Excel对象工作第一步永远是【打开/新建Excel】。指令配置里有几个参数直接决定后面样式能不能做成功启动方式新建Excel或打开已有的Excel路径填绝对路径驱动方式自动检测、office、WPS、openpyxl四选一。做样式必须选office或WPSopenpyxl虽然不依赖本机Office但它对格式的支持弱做复杂样式容易出幺蛾子是否可视化勾选后你能亲眼看到文件被打开、样式被一点点刷上去的样子调试阶段强烈建议勾保存Excel对象至输出的对象变量后面每条指令都要引用它做完记得配【关闭Excel】指令不然文件被流程占着你手动打开会提示只读。设置格式指令——颜色、字体、对齐一站搞定【设置格式】是Excel指令集里管样式的总开关。配置项如下Excel对象选【打开/新建Excel】保存的那个变量区域单元格、区域、行、列、已使用区域五种做表头样式一般填区域如A1:F1格式设置字体、字号、加粗、斜体、下划线、字体颜色、单元格背景颜色、对齐方式都在这里配操作路径说清楚左侧指令区搜索设置格式拖进流程点击格式设置旁边的设置按钮弹出格式面板字体选微软雅黑、字号11、勾选加粗字体颜色选白色、背景颜色选深蓝这是最标准的表头样式。区域参数填A1:F1Sheet页名称留空默认当前激活页。官方文档里有个特别贴心的设计复杂格式可以事先在Excel里手动调好然后用在Excel中指出功能拾取——点那个拾取按钮去已经打开的Excel里选中调好格式的单元格影刀会把样式抄过来。相当于你手动打样机器人量产。**易错点设置格式指令是覆盖式写入。**官方文档明确提醒用【设置格式】设置边框时会丢掉表格原来的字体、加粗、单元格颜色等格式。如果你只想要边框不想动其他格式别用这条指令后面第二节给你方案。边框的正确画法——田字区域与xlwings兜底【设置格式】画边框有个隐藏规则设置边框时需要拾取田字区域。什么叫田字区域就是至少2行2列、中间有交叉线的区域。只选一行或一列内部边框是画不出来的。设置内部行边框拾取一个纵向的田字区域设置内部十字边框拾取一个标准的田字区域横竖内部线都会画上但实际报表经常是只给数据区画边框、保留原有颜色字体【设置格式】做不到这时候上编码方案。前提是驱动方式选了office官方说明此方案只适用于通过Office打开的文件Python模块管理里装好xlwings库插入一个py模块importxlwingsasxwdefmain(args):appxw.apps.active# 当前活动Excel应用wbapp.books.active# 当前活动工作簿wsxw.sheets.active# 当前活动工作表last_columnws.range(A1).end(right).get_address(0,0)[0]# 取区域结束列名last_rowws.range(A1).end(down).row# 取区域结束行数a_rangefA1:{last_column}{last_row}# 拼出整个数据区如 A1:F100ws.range(a_range).api.Borders(7).LineStyle1# 左边框ws.range(a_range).api.Borders(8).LineStyle1# 上边框ws.range(a_range).api.Borders(9).LineStyle1# 下边框ws.range(a_range).api.Borders(10).LineStyle1# 右边框ws.range(a_range).api.Borders(11).LineStyle1# 内部垂直边框ws.range(a_range).api.Borders(12).LineStyle1# 内部水平边框wb.save()# 保存不写这行样式不会落盘这段代码的好处是只动边框、不碰其他格式而且起止行列是动态算的明天数据从100行涨到500行也不用改代码。我的日报流程里它已经稳定跑了一年多。冻结首行指令——长表必配的最后一步几百行的数据表往下翻表头消失看到哪列都不知道是什么——运营反馈最多的就是这个。【冻结首行】指令专治此症官方描述是通过接口实现冻结首行、取消首行冻结的功能。配置项只有三个Excel对象选之前创建的Excel对象变量冻结范围下拉四选——行、列、区域、取消冻结冻结区域按范围填行填1列填A区域填A1:B2这种格式选取消冻结时不用填Sheet页名称选填默认当前激活Sheet页最常用的就是冻结范围选行、冻结区域填1第一行锁死。做日报我还会加一档冻结区域填A1:B1把首行和第一列一般是商品名或日期一起锁住横向竖向翻都清晰。注意这个指令是对某区域生效想取消冻结时选取消冻结即可不用逐个反向操作。指令摆放顺序我固定为写入数据 → 设置格式 → 画边框 → 冻结首行 → 关闭Excel。顺序错了可能导致冻结失效因为有些操作会重置视图。元素定位四合一——报表数据的源头功夫报表数据经常要从网页后台抓。这里把影刀RPA定位体系完整过一遍元素捕获点捕获元素按钮、橙色边框确认、XPath六种写法、CSS选择器八种语法、正则三个场景抽数字、抢单号、清脏字符。# 捕获元素报表后台的导出按钮 //*[idtoolbar]//button[contains(text(),导出)] # 捕获元素订单列表里的金额列 //table[classorder-table]/tbody/tr/td[5] # CSS选择器等价写法属性唯一时更简洁 #toolbar button.export-btn选型指南**CSS快XPath灵活。**属性唯一直接CSS要用文本匹配、兄弟参照、父级回溯XPath没有对手。定位不稳的表单页优先等待元素出现再操作这是网页自动化铁律。变量与流程控制——让样式跟着数据走样式参数里最有价值的是动态区域。数据行数每天变区域就不能写死A1:F100。做法【读取Excel内容】读取方式选已使用区域内容拿到二维列表或用【读取Excel总行数】拿行数变量区域字符串用拼接变量生成传给【设置格式】。变量类型上记住三条区域是字符串、行数是数字、读取的内容是列表单元格读出来是字符串区域是二维列表。流程控制上多种报表样式用If按报表类型分支【设置格式】和xlwings脚本都包进Try-CatchCatch里【打印日志】记下失败区域Finally里保证【关闭Excel】一定执行——不然报错后Excel进程残留第二次运行直接报被呼叫方拒绝接收呼叫这个报错我当年查了一下午。数据处理与进阶协同——报表内容的加工层样式之前先把数据洗干净文本提取与清洗去掉前后空格和特殊字符数字列统一格式订单号、身份证号这类纯数字长文本用【写入内容至Excel工作表】的格式设置为文本的列参数列号逗号分隔不然科学计数法毁所有。进阶玩法HTTP请求拉接口数据进报表、Python的Pandas做透视汇总、OCR识别纸质单据进表、ADB手机自动化抓APP端数据。系统联动层面报表生成后【发送飞书消息】通知群、或邮件自动投递、再用定时任务挂在每天早上八点——一条完整的无人值守报表流水线就成了。平台实战的样例小红书笔记数据日报、拼多多商品价格监控表数据采集和报表美化我都是拆成两个子流程中间用文件交接哪个环节出问题看一眼中间文件就知道。工程化规范——样式报表的封装纪律样式操作全部封装成子流程报表美化参数输入Excel对象和区域任何流程可复用颜色规范写死在子流程里表头深蓝白字、合计行浅灰加粗全公司报表统一颜值调试用断点单步执行配合可视化模式肉眼确认每步样式效果版本选择社区版每天30分钟时长跑学习项目够用定时生产的报表流程建议创业版易错速查表现象原因解法边框画不出来选的区域不是田字区域至少2行2列再设内部边框设边框后字体颜色全丢设置格式是覆盖式改用xlwings只画Borders冻结首行无效顺序在格式设置之前挪到关闭Excel前最后执行报被呼叫方拒绝接收呼叫Excel进程残留流程加关闭Excel重启电脑清进程订单号变科学计数法数字列格式错误写入时设置格式为文本的列学习资源与延伸阅读完整报表流程的源码我放在代码仓库 home.linyan.cloud可以直接参考改造xlwings边框脚本和格式子流程都打包在里面。官方文档里【设置格式】【冻结首行】两条指令页面各附了完整的示例流程截图影刀学院的Excel自动化-进阶视频课程把这部分讲得很细值得对照着过一遍。#影刀RPA #RPA自动化 #Excel #报表样式 #定时任务作者林焱
返回列表