影刀RPA 报表自动调度:定时查询数据库并生成业务报表

📅 2026/7/16 0:28:33
影刀RPA 报表自动调度:定时查询数据库并生成业务报表
影刀RPA 报表自动调度定时查询数据库并生成业务报表作者林焱什么情况用什么大多数公司都有几个祖传报表每天早上销售总监要看前一天的销售额每周一运营总监要看上周的用户增长每月1号财务要看上月的收支。这些报表的SQL是写好的但每天手动跑SQL、导出Excel、发邮件——每天重复。影刀RPA做报表调度的价值定时连数据库 → 执行固定SQL → 格式化Excel → 自动发邮件/发到企业微信群。中间不需要人碰一下。怎么做第一步配置数据库连接店群矩阵自动化突破运营极限影刀操作步骤1. 【执行Python】用pymysql连接数据库importpymysqlimportpandasaspd connpymysql.connect(host192.168.1.100,port3306,userreport_user,password***,databasesales_db,charsetutf8mb4)# 执行日销售报表SQLdaily_sql SELECT DATE(create_time) as 日期, COUNT(*) as 订单数, SUM(amount) as 销售额, COUNT(DISTINCT user_id) as 下单用户数 FROM orders WHERE DATE(create_time) CURDATE() - INTERVAL 1 DAY GROUP BY DATE(create_time) df_dailypd.read_sql(daily_sql,conn)conn.close()踩过的坑数据库连接不要写死在代码里。用影刀的【配置文件】功能把IP、端口、账号存成全局变量换环境时只改变量不改代码。第二步多SQL报表聚合一个报表往往需要跑多条SQL。queries{日销售:SELECT ... FROM orders WHERE date CURDATE() - 1,日新增用户:SELECT ... FROM users WHERE reg_date CURDATE() - 1,日活跃:SELECT ... FROM user_activity WHERE date CURDATE() - 1,}connpymysql.connect(**db_config)results{}forname,sqlinqueries.items():dfpd.read_sql(sql,conn)results[name]dfprint(f{name}:{len(df)}条)conn.close()第三步生成格式化ExcelfromopenpyxlimportWorkbookfromopenpyxl.stylesimportFont,PatternFill,Border,Side,Alignmentfromopenpyxl.utilsimportget_column_letter wbWorkbook()wswb.active ws.title日销售报表# 大标题ws.merge_cells(A1:D1)ws[A1]f每日销售数据 -{yesterday}ws[A1].fontFont(size14,boldTrue)ws[A1].alignmentAlignment(horizontalcenter)# 表头headers[日期,订单数,销售额,下单用户数]forcol,headerinenumerate(headers,1):![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5c552994cf634a5183ad33c67fad6479.png#pic_center)cellws.cell(row3,columncol,valueheader)cell.fontFont(boldTrue,colorFFFFFF)cell.fillPatternFill(start_color4472C4,end_color4472C4,fill_typesolid)# 数据forrow_idx,(_,row)inenumerate(df_daily.iterrows(),4):forcol_idx,headerinenumerate(headers,1):ws.cell(rowrow_idx,columncol_idx,valuerow[header])# 自动列宽forcolinrange(1,len(headers)1):ws.column_dimensions[get_column_letter(col)].width15wb.save(rD:\reports\daily_sales.xlsx)第四步自动分发影刀操作步骤1. 【发送邮件】 收件人销售总监 各区域经理 主题日销售报表 - {日期} 附件D:\reports\daily_sales.xlsx 正文昨日销售额 ¥{total:,}订单数 {orders}同比{change}% 2. 可选【发送消息】发送到企业微信群 Webhook发卡片消息 昨日销售数据已生成点击查看第五步定时触发影刀操作设置【定时任务】每天早上8:00执行这样每天早上销售总监还没到公司报表已经在邮箱里了。temu店群自动化报活动案例有什么坑坑1数据库查询超时大表查询可能跑几分钟甚至超时。加read_sql的timeout限制超时就告警不要傻等。坑2节假日没数据节假日订单可能为0条SQL返回空数据集。报告里要体现今日无数据而非发空Excel。坑3收件人列表常变部门调整后收件人可能变了但脚本里的收件人列表没人更新。把收件人列表写在配置Excel里脚本每次动态读取1. 【读取Excel】读入报表分发配置.xlsx包含报表名称和收件人 2. 【循环】按配置发邮件坑4Excel格式被破坏如果收件人在收到的Excel上做了修改比如加了筛选、改了颜色下次再打开可能找不到数据。建议生成只读的PDF版本作为备份1. 【打开Excel】打开生成的xlsx 2. 【导出PDF】另存为PDF 3. 【发送邮件】同时附带xlsx和PDF总结报表自动化的核心是稳定。SQL稳定不超时、格式稳定不乱、发送稳定不漏。定好每天早上跑出了问题第一时间告警别让老板空等。