资讯动态

影刀RPA进阶教程:Excel图表自动生成——采集数据直接变可视化

发布时间:2026/10/20 10:58:13 来源:尧图企业网站定制
影刀RPA进阶教程Excel图表自动生成——采集数据直接变可视化数据采回来只是一列列数字老板要的是一眼能看懂的图。每周手工选中区域、插入图表、调坐标轴重复劳动到怀疑人生。这篇进阶教程讲怎么用影刀RPA把这一步自动化采集流程落表之后自动生成折线图、柱形图再顺手插一张数据透视表采集数据直接变可视化全程不需要打开Excel点一次鼠标。我是非技术出身做电商运营的影刀RPA用了两年多图表自动化算是我的进阶招牌项目。这篇会把驱动方式的选择、openpyxl画图的代码、透视表的坑一次讲透前面的采集和落表部分我会带得快一点重点全砸在图表这一环。环境与安装先把驱动方式这件事搞明白老规矩影刀客户端装好、浏览器插件装好、能新建应用。社区版就能做本篇全部内容图表生成跑一次几十秒30分钟/天的时长绰绰有余。做Excel图表自动化必须先理解【打开/新建Excel】指令里的驱动方式这个参数官方文档列了四种驱动方式特点适用office兼容性最好支持xls和csv有Office的机器公式读取正常wps支持WPS表格办公机装的是WPSopenpyxl没装Office/WPS也能操作服务器环境、纯读写场景auto_check自动按顺序检测拿不准就选它openpyxl有个官方文档明确写的限制公式会被以字符串形式读出来而不是计算结果。所以我的分工是——写数据用office驱动画图表用openpyxl驱动两者各干各的活。整体流程设计图表生成作为独立子流程流程拆三层01_采集落表、02_数据汇总、03_图表生成。01采集竞品或店铺数据写进数据表02把明细汇总成一张图表数据源工作表03专门负责可视化。为什么图表要独立成子流程因为数据源经常变采集逻辑改八遍图表子流程一个字不用动这就是子流程封装复用的价值。子流程之间用流程参数传递Excel对象主流程里【打开/新建Excel】把对象存成变量三个子流程都引用同一个变量全程只开一个文件避免多个Excel进程打架。元素定位四合一采数环节的最小必会图表的原料是数据数据来自采集采集绕不开元素定位。这里给你一个浓缩版四合一元素捕获解决80%的常规抓取点顶部工具栏捕获元素橙色边框出现后点击确认class动态变化时手写XPathcontains模糊匹配是最常用的写法结构简单时CSS选择器一行搞定div.item span.price这种价格藏在长文本里时用正则提取数字。# 捕获元素销量列表项class固定、结构浅CSS最省事 div.sku-list div.item span.sales # 捕获元素页码文字共36页文本模糊匹配只能用XPath //*[contains(text(),共) and contains(text(),页)] # 参照物定位通过累计销量文字定位右侧数字 //*[contains(text(),累计销量)]/following-sibling::*[1]选型口诀有干净的class用CSS要按文本找或跨层级找用XPath动态文本里的数字用正则。记住这个就不需要在四种写法之间反复纠结。流程控制先判断有没有数据再画图画图前必须做防呆数据表是空的图会画出一个空壳或者直接报错。主流程骨架【打开/新建Excel】打开数据文件【读取区域】读取数据源判断列表长度是否大于1大于1说明除表头外有数据If有数据→调用03图表生成子流程Else→【打印日志】数据为空跳过图表并走告警整体包【Try-Catch】Catch里输出日志Finally里【关闭Excel】这个先判断再画图的If分支帮我避开过最尴尬的场景周一早会上打开自动生成的报表图表区域一片空白。原因就是那天采集全挂了数据没进来图表流程照跑。数据处理汇总出图表数据源图表不能直接吃明细要先汇总。用【读取区域】把明细读成二维列表Python里按日期分组求和生成汇总表再用【写入内容至Excel工作表】写到图表数据源工作表。汇总表长这样两张图共用这一个数据源日期日销售额订单量09-2245230.531209-2351280.035609-2447890.0329写入时留意两件事写入内容传二维列表[[日期,销售额,订单量],...]一次写完比循环逐行快格式设置为文本的列把日期列设为文本防止09-22被转成日期类型后图表横轴错乱。这里顺带说数据透视表影刀有【新建透视表】指令但官方文档里专门列了它的报错原因——数据源区域标题行不能有空格标题带空格会报不能设置类PivotItem的Visible属性。我所有数据源表头的命名习惯就是无空格的下划线风格从根上避开这个坑。进阶技能openpyxl自动生成折线图和柱形图到了本篇核心。影刀原生指令没有插入图表业界通行做法是在【运行代码】指令里用openpyxl画。openpyxl正是影刀支持的驱动之一装在流程依赖里开箱即用。代码不长注释写全# 输入file_path Excel路径输出无直接在文件里生成图表# 在【运行代码】指令中执行需先pip安装openpyxlimportopenpyxlfromopenpyxl.chartimportLineChart,BarChart,Reference wbopenpyxl.load_workbook(rD:\报表\销售日报.xlsx)wswb[图表数据源]# 数据源工作表max_rowws.max_row# 自动取行数数据多少天图就多长# 折线图日销售额趋势lineLineChart()line.title近7日销售额趋势line.y_axis.title销售额(元)line.x_axis.title日期dataReference(ws,min_col2,min_row1,max_col2,max_rowmax_row)# B列含表头catsReference(ws,min_col1,min_row2,max_rowmax_row)# A列日期做横轴line.add_data(data,titles_from_dataTrue)line.set_categories(cats)line.width,line.height18,9# 单位厘米ws.add_chart(line,F2)# 图表锚定到F2单元格# 柱形图每日订单量barBarChart()bar.title近7日订单量bar.y_axis.title订单数data2Reference(ws,min_col3,min_row1,max_col3,max_rowmax_row)bar.add_data(data2,titles_from_dataTrue)bar.set_categories(cats)bar.width,bar.height18,9ws.add_chart(bar,F22)# 锚到F22两张图上下排开不重叠wb.save(rD:\报表\销售日报.xlsx)三个关键点Reference的min_row1带上表头配合titles_from_dataTrue图例自动就是列名max_row动态取数据多一天图就自动长一天永远不用改代码图表锚点是左上角单元格两张图锚点留足纵向间隔不然重叠成一团——这是我踩过的第一个图表坑。鼠标键盘与图像图表环节的应急手段openpyxl画不了所有图比如Excel里已经做好模板、只差刷新的场景。这时反向操作用office驱动打开模板文件靠【等待元素】确认Excel窗口就绪模板里的图表引用的是固定区域数据更新后图表自动刷新根本不用碰图表本身。这是让图表跟着数据走而不是让程序去画图的思路简单场景更好用。个别老系统导出的报表格式诡异openpyxl打不开就用图像识别兜底确认页面状态wait_appear等待某按钮图像出现再继续锚点九位置加偏移量点导出按钮。图像指令只做确认和点击不做数据读取读数还是交给指令。系统联动带图表的报表怎么发出去图表生成完两条出路。第一条是邮件【发送邮件】指令把xlsx加为邮件附件SMTP服务器下拉选常用邮箱勾使用SSL和SMTP服务器需要身份验证填授权码正文一句话说明图表见附件第2个工作表。想让图直接出现在邮件正文里就勾选HTML格式配合【Base64编码文件】指令把图表截图转成Base64字符串插进正文官方文档里写明这两者要配合使用。第二条是截图嵌入其他文档Excel扩展指令里有【区域截图】把图表区域截成图片再走【粘贴至幻灯片】进周会PPT。有个官方文档提过的坑截取的区域含数据透视表时会截到异常内容透视表区域别用截图方案直接发文件。定时执行照旧计划任务里设每周一08:30采集→汇总→图表→发邮件一气呵成记得执行机电源设置改从不防止休眠不触发。工程化规范图表自动化怎么维护不崩三条实操经验。第一数据源表永远单独一个工作表图表引用它明细和图表互不干扰改明细格式不会弄断图表引用。第二openpyxl版本锁死升级依赖前先在测试文件上跑一遍全流程——Python依赖包出问题时影刀编辑器里可能出现新建Python模块一直转圈的情况官方排查方向是本机jedi库版本和加密软件遇到就按文档提示处理。第三每张图表在工作表里的锚点位置固定下来写进注释后面接手的人一眼明白版面规则。调试图表代码时我在【运行代码】前后各加一条【打印日志】输出max_row和保存路径图表异常时日志直接告诉你是数据行数问题还是路径问题配合断点单步执行十分钟内能定位。易错速查表报错/现象原因解决openpyxl读公式得到字符串openpyxl驱动的固有限制需要公式结果时改office/wps驱动新建透视表报PivotItem错误数据源标题行有空格去掉标题空格再建透视表两张图表重叠成一团锚点间隔不够第二张图锚点下移如F22Excel报发生意外进程残留或xls行数超限清进程超65536行改用xlsx图表空白数据源没数据流程照跑画图前If判断列表长度Python模块编辑转圈本机jedi版本冲突卸载/降级jedi重开编辑器学习资源与延伸阅读这篇涉及的开图表完整流程源码——采集、汇总、openpyxl绘图、邮件发送四个子流程——我放在代码仓库 home.linyan.cloud注释都是中文的改改文件路径就能跑。图表代码的Reference和锚点写法建议对照官方openpyxl文档再消化一遍另外影刀官方的Excel自动化-进阶中级课程把读写指令讲得比我细配合食用效果最好。#影刀RPA #RPA自动化 #Excel #数据可视化 #图表生成 #流程自动化作者林焱

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑