影刀RPA新手入门:用RPA解放双手,从这5个日常场景开始
影刀RPA新手入门:用RPA解放双手,从这5个日常场景开始
作者:林焱|阅读时间:约8分钟|难度:⭐ 入门级
还在手动复制粘贴?还在每天重复做同样的操作?本文手把手教你用影刀RPA自动化5个最常见的办公场景,10分钟上手,立竿见影。
一、为什么你需要学RPA?
先看一组数据:
| 场景 | 手动耗时 | RPA耗时 | 节省时间/天 |
|---|---|---|---|
| 每日数据报表 | 1小时 | 3分钟 | 57分钟 |
| 批量发送邮件 | 30分钟 | 2分钟 | 28分钟 |
| 表格数据录入 | 2小时 | 5分钟 | 115分钟 |
| 网页信息采集 | 3小时 | 10分钟 | 170分钟 |
| 文件整理归档 | 1小时 | 1分钟 | 59分钟 |
一天节省5个小时,一年就是1200个小时——相当于多出了150个工作日!
这就是RPA(Robotic Process Automation,机器人流程自动化的魅力。它不是要取代你,而是帮你把那些重复、规则明确、耗时长的工作交给机器人去做。
而影刀RPA,是国内最友好的RPA工具之一——不需要编程基础,通过可视化拖拽就能完成绝大多数自动化任务。
二、场景一:网页表格数据自动采集到Excel
痛点描述
每天早上,运营小李需要打开某个数据网站,把前一天的运营数据(UV、PV、转化率、GMV等)一行行复制到Excel中。数据有20多列,复制粘贴至少要20分钟,而且经常出错——漏行、错列、格式混乱。
RPA实现思路
步骤1: 打开目标网页 ↓ 步骤2: 等待页面加载完成 ↓ 步骤3: 定位数据表格的每一行 ↓ 步骤4: 循环读取每一行的每个单元格 ↓ 步骤5: 将数据写入Excel对应位置 ↓ 步骤6: 保存并关闭文件具体实现
第一步:创建新流程
打开影刀RPA客户端,点击「新建流程」,选择「空白流程」。
第二步:添加「打开网页」指令
在指令面板中搜索「打开网页」或「Navigate」,填入目标URL:
网址:https://your-data-website.com/dashboard第三步:添加「等待元素出现」
店群矩阵自动化突破运营极限!
页面加载需要时间,必须等待数据表格出现后再操作:
等待方式:等待元素出现 选择器:table.data-table (根据实际页面调整) 超时时间:30秒第四步:获取表格行数
使用「获取文本」或专用的「获取表格数据」指令,先拿到表格有多少行:
# 影刀RPA中的表达式示例rows=get_table_row_count(selector="table.data-table")log(f"共发现{rows}行数据")第五步:循环读取每一行
添加一个「For Each 循环」指令,循环范围设为1 到 rows:
循环变量:i(当前行号) 循环体: ├── 获取第 i 行第 1 列 → 变量 col_1 ├── 获取第 i 行第 2 列 → 变量 col_2 ├── ... └── 获取第 i 行第 N 列 → 变量 col_N第六步:写入Excel
在循环体内添加「写入单元格」指令:
文件路径:D:\工作\日报数据.xlsx Sheet名称:Sheet1 单元格:A{i} ← 用循环变量定位行 值:col_1第七步:保存并运行
添加「保存文件」指令,然后点击运行按钮。
效果对比
| 指标 | 手动操作 | RPA自动化 |
|---|---|---|
| 耗时 | 20分钟 | 3分钟 |
| 准确率 | 95%(容易出错) | 100% |
| 可重复性 | 每天都要做 | 设置定时后全自动 |
| 可扩展性 | 数据量大了更累 | 数据量翻倍也不怕 |
三、场景二:批量发送个性化邮件
痛点描述
HR小王每个月要给全公司200多人发工资条邮件。每封邮件的内容基本相同,但收件人姓名和金额不同。手动发一封要1分钟,200封就要3个多小时。
RPA实现思路
步骤1: 读取Excel工资表 ↓ 步骤2: 遍历每一行(每个员工) ↓ 步骤3: 拼接邮件内容(含姓名+金额) ↓ 步骤4: 通过SMTP发送邮件 ↓ 步骤5: 记录发送日志关键代码逻辑
// 读取工资表 salary_data = read_excel("D:\工资\2026年6月工资条.xlsx") // 遍历每个员工 For Each row in salary_data: name = row["姓名"] email = row["邮箱"] base_salary = row["基本工资"] bonus = row["绩效奖金"] total = row["实发工资"] // 拼接邮件内容 mail_body = f""" {name} 您好, 您2026年6月的工资信息如下: - 基本工资:{base_salary} 元 - 绩效奖金:bonus} 元 - 实发工资:{total} 元 如有疑问请联系财务部。 """ // 发送邮件 send_email( to=email, subject="2026年6月工资条", body=mail_body, smtp_host="smtp.company.com", smtp_port=465, username="hr@company.com", password="******" ) // 记录日志 log(f"已发送至 {name} ({email})") // 避免发送过快被限制 wait(2)实用技巧
- 先发测试邮件— 正式批量发送前,先给自己发一封测试
- 加入异常捕获— 某封邮件发送失败不影响后续
- 控制发送频率— 每封之间间隔1-3秒,避免被邮件服务器拉黑
- 生成发送报告— 全部完成后生成一份发送清单(成功/失败/原因)
四、场景三:文件自动按规则归档
痛点描述
设计师小张每月收到几百个设计稿件,散落在下载文件夹里。需要按照项目分类、按日期归档、删除重复文件……每次整理要花半天。
RPA实现方案
输入文件夹:D:\Downloads\ 输出结构: D:\归档\ ├── 2026-06\ │ ├── 项目A\ │ │ ├── 2026-06-01_需求文档.pdf │ │ └── 2026-06-03_设计稿V2.png  │ ├── 项目B\ │ └── ... └── 2026-07\ └── ...核心处理逻辑
// 1. 扫描源文件夹所有文件 files = list_files("D:\Downloads\") // 2. 遍历每个文件 For Each file in files: // 提取文件修改日期 file_date = get_file_modified_date(file) year_month = format(file_date, "YYYY-MM") // 如 "2026-06" // 根据文件名判断所属项目(关键词匹配) if filename_contains("项目A"): project = "项目A" elif filename_contains("项目B"): project = "项目B" else: project = "其他" // 构建目标路径 target_dir = f"D:\归档\{year_month}\{project}\" // 创建目录(如果不存在) create_directory(target_dir) // 重命名文件(加日期前缀) new_name = f"{file_date}_{original_filename}" target_path = target_dir + new_name // 移动文件 move_file(file, target_path) log(f"已归档: {filename} → {target_path}") // 3. 检测并报告重复文件 duplicates = find_duplicate_files("D:\归档\") if duplicates: log("发现以下重复文件:") For Each dup in duplicates: log(dup)高级功能扩展
| 功能 | 说明 |
|---|---|
| 重复检测 | 基于文件MD5哈希值判断是否重复 |
| 大文件提醒 | 超过100MB的文件单独标记 |
| 自动压缩 | 30天前的旧文件自动打包为ZIP |
| 归档报告 | 生成归档清单(文件数/总大小/分类统计) |
五、场景四:定时监控网页变化并发通知
痛点描述
采购员老刘需要时刻关注某原材料的价格波动。以前是每隔一小时刷新一次网页,现在可以用RPA自动监控,价格变动时立即推送消息。
RPA完整方案
配置部分
// 监控配置(可写在配置文件中) config = { "目标URL": "https://price.example.com/material/123", "价格选择器": ".price-value", "检查间隔": 60, // 每60分钟检查一次 "价格阈值": 5, // 变化超过5元才通知 "通知渠道": "钉钉", // 支持钉钉/微信/邮件 "钉钉Webhook": "https://oapi.dingtalk.com/robot/send?access_token=xxx" }主循环逻辑
temu店群自动化报活动案例
While True: // 打开网页获取价格 navigate(config["目标URL"]) current_price = get_text(config["价格选择器"]) current_price = float(current_price.replace("¥", "").replace(",", "")) // 读取上一次记录的价格 last_price = read_config("last_price.txt") // 对比 if last_price is None: // 第一次运行,记录基准价 write_config("last_price.txt", str(current_price)) log(f"基准价格已记录: ¥{current_price}") else: last_price = float(last_price) diff = current_price - last_price abs_diff = abs(diff) if abs_diff >= config["价格阈值"]: // 价格变动超过阈值,发送通知 direction = "上涨" if diff > 0 else "下跌" message = f""" ⚠️ 价格预警! 商品:XX原材料 当前价格:¥{current_price} 上次价格:¥{last_price} 变动幅度:{direction} ¥{abs_diff:.2f} 时间:{get_current_time()} 链接:{config["目标URL"]} """ send_dingtalk_message(message, config["钉钉Webhook"]) // 更新记录 write_config("last_price.txt", str(current_price)) log(f"已发送价格变动通知: {direction} {abs_diff}元") else: log(f"价格无显著变化 (¥{current_price}, 波动{abs_diff}元)") // 等待下一次检查 wait(config["检查间隔"] * 60) // 转换为秒六、场景五:跨系统数据同步——从OA审批单到ERP录入
痛点描述
财务每天要把OA系统里的几十条审批单(报销、采购、付款)一条条手工录入到ERP系统中。两个系统的字段不完全一样,还要做数据映射和校验。
RPA解决方案
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ OA系统登录 │ ───→ │ 审批单列表 │ ───→ │ 逐条读取 │ │ Cookie保持 │ │ 待处理状态 │ │ 字段提取 │ └─────────────┘ └─────────────┘ └──────┬──────┘ ↓ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ ERP确认入库 │ ←── │ 数据转换 │ ←── │ 校验规则 │ │ 更新OA状态 │ │ 字段映射 │ │ 必填/格式 │ └─────────────┘ └─────────────┘ └─────────────┘数据映射表
| OA字段 | ERP字段 | 转换规则 |
|---|---|---|
| 申请人姓名 | 创建人 | 直接映射 |
| 申请日期 | 单据日期 | 格式转为 YYYYMMDD |
| 报销金额(元) | 金额(分) | ×100,取整 |
| 费用类型 | 科目代码 | 查表转换(差旅费→6601) |
| 部门名称 | 成本中心 | 查表转换(销售部→CC001) |
| 附件图片 | 凭证附件 | 下载后上传ERP |
| 备注 | 摘要 | 截取前50字 |
核心流程代码
// ===== 第一阶段:从OA获取数据 ===== // 1. 登录OA系统 navigate("https://oa.company.com/login") input("#username", "rpa_bot") input("#password", "***") click("#login-btn") wait_for_element(".dashboard") // 等待登录成功 // 2. 进入审批单列表,筛选今日待处理 navigate("https://oa.company.com/approval/list") click("#filter-today") // 筛选今天 click("#status-pending") // 筛选待处理 // 3. 获取审批单数量 approval_count = get_element_count(".approval-item") log(f"今日待处理审批单: {approval_count} 条") // ===== 第二阶段:逐条处理 ===== For i from 1 to approval_count: // 点击第i条审批单 click(f".approval-item:nth-child({i})") // 提取OA字段 oa_data = { "applicant": get_text(".field-applicant"), "date": get_text(".field-date"), "amount": get_text(".field-amount"), "type": get_text(".field-type"), "department": get_text(".field-dept"), "remark": get_text(".field-remark"), "attachments": get_attribute(".attachment-link", "href") } // ===== 第三阶段:数据校验 ===== errors = validate(oa_data) If errors is not empty: // 校验不通过,记录错误并跳过 log_error(f"第{i}条校验失败: {errors}") continue // ===== 第四阶段:数据转换 ===== erp_data = transform(oa_data) // ===== 第五阶段:录入ERP ===== navigate("https://erp.company.com/voucher/create") input("#erp-creator", erp_data.creator) input("#erp-date", erp_data.date) input("#erp-amount", erp_data.amount) select("#erp-account", erp_data.account_code) select("#erp-costcenter", erp_data.cost_center) input("#erp-summary", erp_data.summary) // 上传附件(如果有) If erp_data.attachment_path: upload_file("#erp-attachment", erp_data.attachment_path) // 点击提交 click("#erp-submit") wait_for_element(".success-message") // ===== 第六阶段:回写OA状态 ===== navigate_back() // 返回OA click(f".approval-item:nth-child({i}) .btn-approve") click("#confirm-approve") log(f"✅ 第{i}条已完成: {oa_data.applicant} - ¥{oa_data.amount}") // 避免操作过快 wait(3) // ===== 第七阶段:生成处理报告 ===== report = generate_report() send_email( to="finance@company.com", subject=f"RPA日报:{today} OA→ERP同步完成", body=report )七、从这5个场景开始你的RPA之旅
学习路线建议
Week 1: 掌握基础操作 ├── 安装影刀RPA + 熟悉界面 ├── 学会打开网页 + 点击 + 输入文字 └── 完成场景一(网页数据采集) Week 2: 掌握数据处理 ├── Excel读写操作 ├── 变量和循环 └── 完成场景二(批量发邮件) Week 3: 掌握文件操作 + 条件判断  ├── 文件读写、移动、重命名 ├── If/Else条件判断 └── 完成场景三(文件归档) Week 4: 综合实战 ├── 异常处理(Try-Catch) ├── 定时任务设置 └── 完成场景四+五(监控+跨系统同步)新手最容易犯的5个错
| 错误 | 正确做法 |
|---|---|
| 不等页面加载完就操作 | 每步操作前都加「等待元素出现」 |
| 选择器写死 | 使用相对选择器或通配符 |
| 不做异常处理 | 关键操作包Try-Catch |
| 循环里面不控制速度 | 加wait(1)避免被封 |
| 密码明文写在流程里 | 用加密配置或环境变量 |
写在最后
RPA不是程序员的专利。影刀RPA的可视化界面让每个人都能成为自动化工程师。你不需要懂代码,只需要懂得:
- 你要做什么— 明确业务需求
- 操作的步骤是什么— 拆解为一个个具体动作
- 怎么告诉RPA这些步骤— 用影刀的指令拼接出来
从上面5个场景开始练习,你会发现:原来我可以不用再被这些重复工作折磨了!
下一篇推荐:《影刀RPA操作Excel的10大高频场景》— 深入了解Excel自动化的各种实用技巧
作者:林焱| 更多影刀RPA教程请关注专栏,持续更新中~
