影刀RPA进阶教程数据可视化自动化把Excel数据变成精美图表自动发送你每天早上都要做同样的事打开Excel选中数据区域插入图表调颜色截图贴到邮件里发出去。从第一步到最后一步你不知道点了多少次鼠标。关键这图昨天长这样今天还长这样——你只是在重复粘贴不同的数字。有没有可能流程跑完数据图表自动生成邮件自动发送你只需要看一眼用影刀RPA配合Python完全可以做到。为什么要自动生成图表先说三个真实场景场景一运营同学每天要发昨日销售数据报告包含趋势折线图和品类占比饼图。手动做一次15分钟一个月就是5小时——纯粹在调图表。场景二电商团队每周要做竞品价格监控几十个SKU的价格波动需要可视化对比。Excel手工做图表数据一更新全得重来。场景三管理层每天早上要在群里看到一张关键指标仪表盘图片。负责的同学必须在8:30前到公司截图——不能迟到。这三个场景的共同点数据是流程自动采的但图表还要人手工画。把最后这一步也自动化掉才能算真正的全流程无人值守。技术方案Python 影刀影刀本身不内置图表生成能力。但影刀可以调用Python脚本而Python有最强的图表库matplotlib。架构是这样的影刀流程 → 采集数据 → 写入Excel ↓ 影刀调用Python脚本 → 读取Excel → 生成图表图片 ↓ 影刀读取图片 → 通过企微/邮件发送你需要在本机安装两个Python库pipinstallmatplotlib pandas openpyxl安装一次终身受用。实战一自动生成每日销售趋势折线图拼多多店群自动化上架方案假设你有一个Excel文件daily_sales.xlsx结构如下日期销售额2024-01-01158002024-01-0221200| … | … |第一步写Python脚本创建generate_chart.pyimportpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib matplotlib.use(Agg)# 关键无GUI模式下渲染图片# 读取数据dfpd.read_excel(daily_sales.xlsx)# 设置中文字体Windows用SimHeiplt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False# 创建图表fig,axplt.subplots(figsize(10,5))ax.plot(df[日期],df[销售额],color#1890ff,linewidth2,markero)ax.set_title(每日销售额趋势,fontsize16,fontweightbold)ax.set_xlabel(日期)ax.set_ylabel(销售额元)ax.grid(True,alpha0.3)# 旋转日期标签plt.xticks(rotation45)plt.tight_layout()# 保存为图片plt.savefig(sales_trend.png,dpi150,bbox_inchestight)plt.close()print(图表已生成sales_trend.png)中文字体那里要特别注意macOS用Arial Unicode MS或PingFang SCWindows用SimHei或Microsoft YaHei。第二步影刀流程编排1. 执行数据采集流程生成 daily_sales.xlsx 2. 执行命令行指令 命令python generate_chart.py 工作目录你的项目路径 3. 等待命令行执行完成 4. 读取图片文件确认存在 5. 通过企业微信群机器人发送图片第三步企微发送图片影刀发送企业微信消息指令支持上传图片消息类型图片 图片路径sales_trend.png 目标群每日数据报告群实战二品类销售占比饼图饼图是运营报告里出场率第二高的图表。importpandasaspdimportmatplotlib.pyplotasplt matplotlib.use(Agg)plt.rcParams[font.sans-serif][SimHei]dfpd.read_excel(category_sales.xlsx)# 自定义配色colors[#1890ff,#52c41a,#faad14,#f5222d,#722ed1]fig,axplt.subplots(figsize(8,8))wedges,texts,autotextsax.pie(df[销售额],labelsdf[品类],autopct%1.1f%%,colorscolors,startangle90,pctdistance0.85)# 设置百分比文字样式fortinautotexts:t.set_fontsize(12)t.set_fontweight(bold)ax.set_title(品类销售占比,fontsize16,fontweightbold,pad20)# 中心画个白色圆变成环形图centre_circleplt.Circle((0,0),0.70,fcwhite)ax.add_artist(centre_circle)plt.tight_layout()plt.savefig(category_pie.png,dpi150,bbox_inchestight)plt.close()环形图比普通饼图更好看加一行代码的事。实战三一张图放多个图表有时候需要一张图里展示多个维度fig,axesplt.subplots(2,2,figsize(14,10))# 左上趋势折线图axes[0,0].plot(dates,sales,color#1890ff)axes[0,0].set_title(销售额趋势)# 右上柱状图axes[0,1].bar(categories,values,color#52c41a)axes[0,1].set_title(品类对比)# 左下饼图axes[1,0].pie(sizes,labelslabels,autopct%1.1f%%)# 右下汇总表格用matplotlib的table功能table_datadf_summary.values axes[1,1].axis(off)tableaxes[1,1].table(cellTexttable_data,colLabelsdf_summary.columns,cellLoccenter,loccenter)plt.tight_layout()plt.savefig(dashboard.png,dpi150,bbox_inchestight)这一张图就是一份完整的日报仪表盘。进阶技巧让图表更好看默认的matplotlib图表有点性冷淡风几个调整让它更有质感1. 统一配色方案不要用默认颜色太丑了# 科技感配色COLORS{primary:#1890ff,# 主色success:#52c41a,# 涨/增warning:#faad14,# 警示danger:#f5222d,# 跌/减purple:#722ed1,# 辅助cyan:#13c2c2,# 辅助}2. 去掉多余的边框ax.spines[top].set_visible(False)ax.spines[right].set_visible(False)只保留左和下两条轴线立刻清爽。3. 设置统一的标题字体title_font{family:sans-serif,weight:bold,size:16}ax.set_title(标题,fontdicttitle_font)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/db17f6fa94d44de5b3b8c263ebe07101.png#pic_center)4. 加数据标签柱状图上的数字让人一眼看到数值barsax.bar(x,y)forbarinbars:heightbar.get_height()ax.text(bar.get_x()bar.get_width()/2.,height50,f{int(height):,},hacenter,vabottom)影刀和Python的配合方式有三种方式让影刀调用Python方式一执行命令行推荐新手最简单直接指令执行命令行 命令python D:/scripts/generate_chart.py 超时时间60秒优点简单Python脚本可以独立调试。缺点跨机器部署时要保证Python环境和路径一致。方式二影刀内置Python代码块在流程中插入Python代码指令直接写在影刀里。优点不需要单独维护.py文件。缺点调试不方便代码长了很难阅读。方式三影刀调用bat/sh脚本把Python调用包装成脚本文件echo off cd /d D:\scripts python generate_chart.py %*然后用影刀执行这个bat文件。优点可以在脚本里加环境变量、切换目录等额外逻辑。TEMU店群如何管理运营避坑指南坑1matplotlib找不到中文字体错误信息UserWarning: Glyph 38144 missing from current font解决先确认系统里有哪些中文字体importmatplotlib.font_managerasfm fonts[f.nameforfinfm.fontManager.ttflist]print([fforfinfontsifHeiinforSonginf])坑2在服务器上运行报 no display错误信息TclError: no display name and no $DISPLAY environment variable解决在导入matplotlib之后立刻加importmatplotlib matplotlib.use(Agg)这行代码必须在import matplotlib.pyplot之前。坑3图片生成路径问题影刀执行命令行时的工作目录不是你流程文件所在的目录。最好在Python脚本里用绝对路径importos script_diros.path.dirname(os.path.abspath(__file__))output_pathos.path.join(script_dir,chart.png)自动化图表的工作流模板沉淀一个通用模板以后做新的图表需求直接改影刀流程结构 ├─ 1. 数据采集影刀原生指令 ├─ 2. 数据清洗与写入Excel ├─ 3. 执行命令行python generate_chart.py ├─ 4. 检查图片是否生成文件存在判断 │ ├─ 成功 → 5. 发送企微/邮件 │ └─ 失败 → 发送文本告警图表生成失败 └─ 5. 清理移动生成的图片到归档文件夹第4步的检查图片是否生成很重要——Python脚本可能因为各种原因失败数据为空、字体缺失、编码错误不要默默跳过。总结数据可视化的最后一公里——从Excel到图片——是RPA最值得自动化的环节之一。核心思路影刀负责搬运数据Python负责画图企微/邮件负责送达。matplotlib学习成本不高掌握折线图、柱状图、饼图三种就够用。你不需要成为数据可视化专家你只需要让图表每天早上自己出现在该出现的地方。内容标签#影刀RPA #数据可视化 #Python #matplotlib #自动化报表作者林焱系列影刀RPA进阶教程系列——不止会用指令更要会搭体系