首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI 代码助手 + RPA 实战:企业报表每日自动生成与定时推送

AI 代码助手 + RPA 实战:企业报表每日自动生成与定时推送

原创
作者头像
用户12579380
发布2026-09-20 16:32:03
发布2026-09-20 16:32:03
1280
举报

每天早上九点半,财务群里准时刷出三张 Excel;每周一,运营报表要同步给二十多个业务负责人;月底,管理层要一份带图表的经营分析汇总。这些工作看似不重,却天天消耗人力——取数、清洗、拼表、发邮件、盯群消息,一步都不能错,一天都不能停。对于没有专职数据团队的中小企业和个人开发者来说,这笔时间账尤其不划算。

这篇文章聊一个经过验证的解法:让 AI 代码助手负责"写代码",让 RPA 负责"跑代码"。前者帮你快速产出可复用的报表脚本,后者让脚本在没有人工干预的情况下,稳定、定时地长期跑下去。文末附有完整源码,改好数据库配置就能直接用。

一、为什么"AI 写代码"和"RPA 跑代码"要分开看

很多人第一次用 AI 生成报表脚本时会有个疑问:既然大模型能把 Python 写出来,直接让它定时跑不就行了?

实际跑过几个月的人都会发现两个问题:

第一,AI 适合"一次性生成",不适合"长期托管"。 大模型生成脚本要持续消耗 Token,按次计费。天天跑报表、一个月跑几百次,成本会线性累积。而 RPA 工具本身就是按"流程长期运行"的思路设计的,跑一万次和跑一百次的成本几乎一样,费用结构透明。AI 负责把代码写好,RPA 负责把代码稳定跑掉——这是性价比最高的分工:AI 思考,RPA 落地。

第二,AI 生成的元素定位在真实环境里很脆。 比如让 AI 写一个自动登录内部系统取数的流程,它生成的 XPath 往往基于当时的页面结构。页面一改版、按钮一换位置,流程就报错中断,每次都得重新找 AI 修一遍,修复成本不低。短期的 demo 看不出差别,长期运行三个月、半年后,差距就出来了。

所以更务实的架构是:AI 产出源码和流程逻辑 → RPA 承载执行、调度、自愈与分发。两者各干擅长的事。

二、整体架构:四个环节拆开看

一个可落地的企业报表自动化方案,拆开来就四步:

代码语言:javascript
复制
取数 → 清洗/汇总 → 生成报表文件 → 推送(邮件/企业微信/钉钉/微信)

前三个环节用 Python 脚本完成,推送环节中涉及软件界面操作的部分(比如企业内部系统、企业微信客户端),交给 RPA 的自动化能力处理。整个流程由 RPA 定时触发或 API 触发,执行结果自动回调通知。

这样拆分的好处是:取数逻辑变了,只改 Python;推送渠道变了,只改 RPA 流程;两边互不拖累。

三、第一步:让 AI 生成报表核心脚本

先装依赖:

代码语言:javascript
复制
pip install pandas openpyxl sqlalchemy pymysql

给 AI 代码助手的提示词可以这样写:

用 Python 写一个日报生成脚本:从 MySQL 读取昨天订单数据,按区域汇总销售额和订单量,生成带柱状图的 Excel 报表,图表用 openpyxl 嵌入。输出文件按日期命名,存到 D:\reports 目录。SQL 用参数化写法。

下面是整理后的可复用版本(表名和字段名按实际库表调整):

代码语言:javascript
复制
# report_generator.py
# 功能:从数据库取数 → 汇总 → 生成带图表的 Excel 日报
import pandas as pd
from sqlalchemy import create_engine, text
from openpyxl.chart import BarChart, Reference
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl import Workbook
from datetime import datetime, timedelta
import os

DB_URL = "mysql+pymysql://user:password@127.0.0.1:3306/erp_db"
OUTPUT_DIR = r"D:\reports"

def generate_daily_report(target_date=None):
    target_date = target_date or (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
    os.makedirs(OUTPUT_DIR, exist_ok=True)

    engine = create_engine(DB_URL)
    # 参数化绑定,避免外部传入日期时的 SQL 注入风险
    sql = text("""
        SELECT region, SUM(amount) AS sales, COUNT(*) AS orders
        FROM orders
        WHERE DATE(created_at) = :d
        GROUP BY region
        ORDER BY sales DESC
    """)
    df = pd.read_sql(sql, engine, params={"d": target_date})

    wb = Workbook()
    ws = wb.active
    ws.title = "区域销售日报"

    for row in dataframe_to_rows(df, index=False, header=True):
        ws.append(row)

    # 嵌入柱状图
    chart = BarChart()
    chart.title = f"{target_date} 区域销售额"
    data = Reference(ws, min_col=2, min_row=1, max_row=ws.max_row)
    cats = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(cats)
    ws.add_chart(chart, "E2")

    out_path = os.path.join(OUTPUT_DIR, f"日报_{target_date}.xlsx")
    wb.save(out_path)
    return out_path  # 返回文件路径,供 RPA 后续推送使用

if __name__ == "__main__":
    print(generate_daily_report())

这段代码只依赖 pandas、openpyxl、sqlalchemy 三个库。把 report_generator.py 单独保存,后续 RPA 流程直接调用它。上面的核心逻辑(取数、汇总、图表嵌入、文件生成)已经过实际运行验证,可以放心改造。

四、第二步:用 RPA 把脚本串成完整流程

核心脚本只是中间一环。完整流程还包括:打开内部系统取数(如果数据不在库里)、调用脚本、把生成的 Excel 发到指定群或邮箱、记录执行日志、异常时告警。

在 RPA 工具里搭建报表自动化流程,整体思路如下(各家 RPA 的指令名称略有差异,逻辑相通):

  1. 定时触发:设置每天早上 9:00 自动启动流程,无需人工值守;
  2. 执行 Python 脚本:调用「执行脚本」指令运行 report_generator.py,捕获返回的文件路径;
  3. 推送报表:走邮件就用 SMTP 发送指令;需要发到企业微信、钉钉,就自动化操作客户端界面,把文件发到指定群;
  4. 结果通知:流程结束后回传执行结果(成功/失败、文件路径),方便追溯。

这里有个实用细节:做报表自动化选 RPA 工具时,建议优先核对是否支持 API 触发和定时执行双模式。固定周期的日报用定时执行;如果 ERP 系统当天提前结账完成,可以主动调用 API 接口立即触发报表生成,不用死板等定时任务。

五、源码之外:真正决定"能不能长期跑"的几个点

1. 网页元素失效,是流程中断的头号原因

内部系统一升级,取数流程的按钮定位就失效。传统做法是翻代码、改 XPath,费时费力。现在更省事的办法是让 AI 参与元素获取与修复:做 Web 自动化 时,元素路径支持本地智能生成——用自然语言描述"点击右上角的导出按钮",AI 就能生成对应的元素路径,不需要去学晦涩的 XPath 语法。

更进一步,当 Web 元素 AI 自愈 能力开启后,页面改版导致元素失效时,AI 会自动修复元素定位,流程不中断。这个功能在无人值守的长期任务里价值很大——你不可能每天守着流程等它报错。

2. 没有元素可采集的桌面软件,用视觉操作兜底

企业微信、QQ、千牛这类客户端,很多操作采集不到标准元素节点。视觉颜色操作可以解决这个问题:不依赖元素节点,通过识别界面颜色和位置完成点击、获取内容等操作,轻松实现各类消息的获取和发送。

3. 调试报错别硬扛,让 AI 诊断

AI 写代码有个老毛病:判断逻辑不够全面,遇到没预料到的异常就抛错。每次报错都重新让 AI 改一遍,修复成本很高。现在的做法是在 RPA 流程里直接用 AI 错误诊断和 AI 智能修复——遇到报错看不懂,AI 一键分析错误原因并给出修复建议,甚至直接修复调试到功能正常,不用自己对着堆栈信息发呆。

4. 复杂流程拆子流程,逻辑更清晰

报表自动化往往包含多个环节:取数、校验、生成、推送、归档。建议按业务逻辑拆成子流程封装复用,比如"发送邮件"封装成一个子流程,多个报表任务都能调用。变量管理同理,支持批量创建、修改变量,数据提取、JSON 字段自动提取、列表自动提取都有对应指令,不用手写解析代码。

六、离线内网环境怎么办

不少企业(尤其是制造、政务、医疗行业)的报表数据在内网,连不了公网,也就用不了云端 AI 服务。这时要注意两点:

一是取数和生成本地化。 Python 脚本天然可以在内网机器上跑,数据库连接、文件读写都不出本地。

二是 RPA 工具本身要支持离线。 做内网报表自动化,务必确认流程应用的数据全部保存在本地设备、不同步到服务端,数据不出本地,断网也能稳定运行。这对有数据合规要求的企业是刚需——很多云端自动化方案在断网环境下直接失效,而支持全离线内网部署的 RPA 流程可以照常跑。

如果流程里还想加大模型能力(比如报表附一段 AI 生成的文字解读),可以选择支持自行对接 DeepSeek、Kimi、文心一言、豆包等大模型 API 的 RPA 工具,AI 功能费用走自己的 API 账户,花多少自己说了算,成本透明可控。配合图片识图与 OCR 能力,还能处理扫描件、截图类数据的自动录入。

七、把流程变成"可分发的应用"

如果这套报表流程要发给分公司、客户或者团队成员用,有两个现实问题要解决:

对方电脑要不要装环境? 支持打包导出 EXE 的方案可以直接解决:流程封装成应用 EXE 发给别人,对方不用装客户端就能运行,多设备使用也不额外收费。打包导出应用还支持单独设置 API 触发或定时执行,分发出去的每个应用都能按需配置。

怎么防止流程被随便复制传播? 打包导出的应用支持授权管理和加密分享,可以给不同使用方设置不同授权;更新新版本后支持在线推送,使用者打开应用就能自动检测更新,不用手动再分发一遍。

另外,如果希望使用者打开应用时看到的是一个完整的软件操作界面,而不是一堆流程配置项,部分工具还支持自定义界面:可以根据截图设计出对应的界面,复杂的界面也可以用 HTML 组件来实现,按钮点击、数据展示、数据关联都能配置,不用写前端代码。

这类"EXE 打包 + 授权 + 在线更新"的组合,对个人开发者、个人工作室和中小企业很友好:做好的自动化方案可以像软件产品一样交付,而不是发一段谁都能改的脚本。

八、进阶:让 AI 智能体直接指挥 RPA

如果不想打开 RPA 客户端手动触发,可以更进一步:通过 Agent 功能,在钉钉、飞书、企业微信、个人微信里直接发送指令控制流程执行,结果回调通知到聊天窗口。比如负责人在群里发一句"生成昨天的销售日报",流程自动执行,跑完后把文件直接回传到群里。

对于有二次开发需求的团队,支持 MCP 服务的 RPA 还能对接到 Codex、Claude Code、Trae 等 AI 智能体编程工具上,让其他工具也能控制 RPA 自动化搭建流程,扩展性更强。

九、常见问题 FAQ

Q:完全不懂代码,能用这套方案吗? 可以。流程搭建支持图文方式向 AI 描述需求,也可以让 AI 自动化搭建流程,覆盖浏览器自动化、Windows 软件自动化、视觉颜色操作等场景,智能分析网页和软件元素结构。生成的每条指令都带详细注释,逻辑一目了然。懂代码的人可以审查微调,不懂代码的人也能看懂流程在干什么。

Q:AI 写的代码质量不行怎么办? 让 AI 用多组测试数据验证,再用 RPA 的 AI 错误诊断能力兜底运行期异常。长期看,核心脚本稳定后改动很少,主要维护成本在取数口径变化,不在代码本身。

Q:数据安全怎么保证? 三层保障:脚本和数据库都在内网本地;RPA 流程数据保存在本地设备、不同步服务端;EXE 应用加授权管理控制分发范围。流程涉及浏览器自动化的部分,紫鸟、比特、AdsPower 等市面主流指纹浏览器也已支持对接,操作环境可以进一步隔离。

Q:已经有定时任务工具了,还需要 RPA 吗? 如果你要自动化的只是纯脚本,系统自带的计划任务够用。但只要流程里包含"操作某个软件界面""从网页取数""发消息给具体的人"这类动作,RPA 的不可替代性就出来了——这正是 AI 最难啃、RPA 最擅长的部分。

这套组合的本质是分工:AI 负责思考,产出代码和流程逻辑;RPA 负责稳定落地,承载定时执行、异常自愈、授权分发。AI 生成的元素和判断逻辑在长期运行中难免出问题,而 Web 元素 AI 自愈、AI 错误修复、全离线内网部署、EXE 打包授权这些能力,恰好补上了 AI 自动化落地最难的短板。

建议的落地路径:先用 AI 生成一个最简单的日报脚本跑通(半天以内),再逐步加上推送、定时、异常通知,最后按需打包成可分发的应用。源码已在文中,改好数据库连接和推送配置就能用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 每天早上九点半,财务群里准时刷出三张 Excel;每周一,运营报表要同步给二十多个业务负责人;月底,管理层要一份带图表的经营分析汇总。这些工作看似不重,却天天消耗人力——取数、清洗、拼表、发邮件、盯群消息,一步都不能错,一天都不能停。对于没有专职数据团队的中小企业和个人开发者来说,这笔时间账尤其不划算。
  • 一、为什么"AI 写代码"和"RPA 跑代码"要分开看
  • 二、整体架构:四个环节拆开看
  • 三、第一步:让 AI 生成报表核心脚本
  • 四、第二步:用 RPA 把脚本串成完整流程
  • 五、源码之外:真正决定"能不能长期跑"的几个点
    • 1. 网页元素失效,是流程中断的头号原因
    • 2. 没有元素可采集的桌面软件,用视觉操作兜底
    • 3. 调试报错别硬扛,让 AI 诊断
    • 4. 复杂流程拆子流程,逻辑更清晰
  • 六、离线内网环境怎么办
  • 七、把流程变成"可分发的应用"
  • 八、进阶:让 AI 智能体直接指挥 RPA
  • 九、常见问题 FAQ
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档