ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

影刀RPA实操指南:电子发票批量验真与台账核对

影刀RPA实操指南:电子发票批量验真与台账核对 影刀RPA实操指南电子发票批量验真与台账核对月底财务最怕两件事一摞电子发票要逐张登录查验平台验真验完还要对着台账逐张核对金额、税号、开票日期。我第一次帮公司财务搭流程时200多张发票两个人核了整整两天还差点漏掉一张问题票。后来我用影刀RPA做了一套读台账—循环验真—写回核对结果的流程同样一摞发票机器跑完不到一小时。这篇把这套流程从安装、定位到通知的完整链路拆开讲。你不一定做发票验真但读表—循环—查网页—写回表格这个骨架换成合同核验、订单对账一样适用都是同一套思路换数据源。环境搭建装好影刀RPA和浏览器插件流程依赖网页操作先把地基打好。去影刀官网下载客户端安装时一路默认即可装完第一次启动会提示安装浏览器插件Chrome和Edge都装上。插件没装好是新手最常见的点击元素无反应问题的根源。主界面记住三个区域就够了中间的流程画布放指令右侧是指令详情面板填参数左侧指令库按分类排列顶部搜索框直接搜指令名最快。社区版每天有30分钟运行时长调试期够用等流程要每日跑批量时再考虑创业版。插件没装或没启用时所有网页指令都会报找不到浏览器先查这个再查别的。元素定位查验平台输入框怎么抓批量验真的核心动作是在查验页面填入发票号码、开票日期、校验码然后点击查验、读取结果。先点击顶部工具栏的捕获元素按钮鼠标移到网页上出现橙色边框后点击确认影刀RPA会自动生成元素。自动生成的定位多数时候能用但查验类页面经常有动态id建议手动换成XPath。下面是几个通用的定位写法思路是用稳定的文字或placeholder去锚定# 捕获元素查验页面发票号码输入框按placeholder锚定不依赖易变的id //*[placeholder请输入发票号码] # 捕获元素查验提交按钮按按钮文本定位 //*[contains(text(),查 验)] # 捕获元素查验结果区域的文本节点模糊匹配查验结果字样 //*[contains(text(),查验结果)]/.. # 参照物定位通过开票日期标签定位它右侧的输入框 //*[contains(text(),开票日期)]/following-sibling::*[1]XPath和CSS选择器怎么选我的经验是网页结构规整、class命名清晰的用CSS如input#fpdm、.btn-check要按文本内容找元素、要跨层级找参照物的用XPath。查验平台这种老式后台页面XPath的contains匹配比CSS稳得多。台账读取Excel区域读取与变量准备台账我放在一张Excel里列结构是序号、发票号码、开票日期、校验码后六位、金额、验真结果。用打开Excel指令打开文件后接读取区域指令读取方式选区域范围填A2:H201按实际行数结果存成列表变量。几个变量类型的坑我替你踩过了读取出来的Excel内容是列表套列表取第3行发票号要写data[2][1]行和列都是从0开始发票号码是20位数字Excel里可能被存成科学计数法或浮点数读出来变成1.23457E19台账里这一列务必先在Excel里设置成文本格式开票日期读出来可能是2026-08-15 00:00:00这种带时分秒的查验页面只认2026-08-15用文本切片date_str[:10]处理校验码有的发票是后六位、有的是空全电票流程里要用If条件判断这一格是否为空分别走不同的填写分支。循环骨架批量验真的流程控制设计整个流程的控制结构是三层最外层For次数循环或ForEach列表循环遍历台账每一行中间是网页操作序列外面套Try-Catch兜住单张失败。我用影刀RPA搭的具体顺序是打开网页指令打开查验平台URL参数填平台地址打开方式选新建标签页然后进入循环每次循环做填写输入框(web)填发票号—填日期—填校验码—点击元素(web)点查验—等待元素出现—获取元素文本内容读结果—写入行数据到表格写回台账。两个必加的保险循环里加判断元素是否存在。有的票查验后会弹滑块验证先判断滑块是否出现出现就走图像识别点击分支没出现直接读结果Try-Catch的Catch块里放输出日志加截图。某张票验真失败时记录行号和报错信息跑完统一人工补查不能让一张票卡死整个批次翻页场景也顺手说一下如果验真入口是列表页每页20条总页数未知可以循环里先获取元素文本内容读下一页按钮的class判断里面有没有disabled字样有就退出循环这是最不容易死循环的翻页写法。等待与弹窗查验页面最容易卡住的环节查验平台是典型的老政府风页面点击查验后要等几秒才出结果直接读文本大概率读到空。三种等待怎么选固定延迟简单粗暴但浪费时长等待元素出现等查验结果文案出现最推荐判断元素存在配合短循环适合网络不稳的情况。弹窗处理我总结过一套固定动作点击查验后先判断元素是否存在检查确认弹窗存在就点确认再检查滑块弹窗存在就切图像识别点击最后检查错误提示弹窗如该发票已超过查验次数限制存在就把结果记为需人工。弹窗永远要在读结果之前处理顺序反了读到的就是弹窗内容而不是结果。OCR辅助PDF和截图发票的信息提取台账不全、只有一文件夹发票PDF或截图的情况可以用影刀RPA的发票识别能力补齐。官方OCR模块里有卡证识别-增值税发票流程写法是创建发票图片对象来源填本地图片路径如D:\invoice.png→ 调用发票接口识别 → 输出发票号码、开票日期等字段出租车票等其他票种也有对应接口。我的用法是把PDF截图转成图片文件夹循环文件夹里每张图依次识别识别结果先写进一张临时Excel再和台账核对。识别准确率对清晰截图很高但手机翻拍的照片偶尔会认错一位数识别结果一定要和台账交叉核对不能直接信任单边数据。结果写回核对逻辑与Excel批量处理验真结果写回用写入区域指令从结果列的起始单元格开始整列写入比逐格写快得多。核对逻辑我放在Excel公式之外、用流程做机器填A列平台验真结果再用Python或文本指令比对台账金额和平台返回金额是否一致不一致的在核对列标差异。核对列的处理用一个小Python块最省事# 输入row是读取区域出来的一行台账数据# 输出result是核对结论字符串yt_amtfloat(row[4])# 台账里的金额第5列pt_amtfloat(row[7])# 平台返回的金额第8列diffround(yt_amt-pt_amt,2)# 差额保留两位小数ifabs(diff)0.01:result一致else:resultf差异{diff}元# 直接把差额写进结论方便财务定位浮点数直接比较会踩精度坑0.10.2不等于0.3所以代码里先round再比较。这种小坑财报核对场景特别常见。平台延伸从查验平台到电商开票后台这套骨架我在两个场景复用过。一个是阿里系后台的发票开具批量处理页面特点很典型点同意后按钮文字会变成已准相似元素个数随之变化直接按下标循环会错位。官方文档给的解法是改用For次数循环循环体内重新获取相似元素列表按当次下标去取列表项来操作每次循环都拿最新列表。另一个是电商采购平台的发票状态拉取把查验平台换成订单详情页把验真结果换成开票状态流程结构一字不改。你要是做店群或跨境拼多多商家后台、TEMU的开票信息页也是同理。识别这类流程的共同点有列表、有循环、有状态判断就能套这套骨架。批量任务量再往上走可以了解影刀RPA的工作队列按模板构建队列如开发票队列每个队列项带优先级和截止时间调度系统自动分发适合每天上千条事务性任务的团队。系统联动飞书通知与定时任务流程跑完别指望人盯屏幕。加一个飞书群通知指令把统计结果发到财务群本次共验真N张一致N张差异N张附行号需人工N张。财务早上来上班看到消息就知道要不要处理。定时任务在影刀RPA客户端的计划任务里配置我设的是每月1号和16号上午9点各跑一次错开月底高峰。夜间跑有个铁律机器不能锁屏休眠账号登录态要提前保住凌晨3点跑挂了没人管所以我的 Catch 块最后都接飞书通知挂了立刻有人知道。工程化规范让流程能被别人接手这套流程我拆成了三个子流程01_读取台账、02_单张验真核心参数传入发票号/日期/校验码返回结果、03_写回并通知。子流程之间用输入输出参数传数据主流程只剩调度逻辑。命名用编号前缀谁接手都能看懂顺序。调试别全流程跑在怀疑出错的指令上右键加断点用单步执行一行行走配合变量面板看每一步的变量值。我排查读到的金额是空的这种问题九成靠断点十秒定位。注释也别省给每个子流程开头写两行用途说明三个月后的你会感谢现在的你。易错速查发票验真流程6个高频坑现象原因处理发票号变成1.2E19Excel数字格式台账该列设为文本格式读到空结果没等页面刷新改用等待元素出现循环到第3张就错位点击后元素列表变化循环内重新获取相似元素列表滑块弹窗导致卡死弹窗未处理读结果前先判断弹窗存在查验次数超限同票重复查验本地缓存已验结果再查流程夜间挂掉休眠/登录态失效关休眠失败接飞书通知再补三条网页侧的新窗口打开的查验结果页要重新用获取已打开的网页对象拿对象不改指令里的网页对象就会报找不到控件iframe嵌套的页面先切进iframe再捕获元素输入用模拟人工输入模式而不是直接赋值有些老页面不触发键盘事件就验不了。延伸阅读与学习资源官方帮助文档里搜OCR“工作队列”下载能把本文用到的指令细节翻全影刀学院的视频课适合把网页自动化章节再过一遍。我自己整理了一套验真流程的模板和XPath示例放在作者的代码仓库 home.linyan.cloud 里台账表头结构也附在里面照着改列名就能用。#影刀RPA #RPA自动化 #发票验真 #Excel核对 #财税自动化作者林焱
返回列表