news 2026/10/5 6:38:55

影刀RPA新手教程:供应商管理自动化实战——询价比价与合同到期提醒

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
影刀RPA新手教程:供应商管理自动化实战——询价比价与合同到期提醒

影刀RPA新手教程:供应商管理自动化实战——询价比价与合同到期提醒

一、认识影刀与供应商管理场景

供应商管理自动化的核心是「定时检查+自动提醒+比价汇总」,用影刀的「计划任务」每天定时跑,检查合同到期日和汇总询价邮件,人工只需要处理例外情况。

供应商信息表用Excel维护,字段包括:供应商名称、联系人、联系电话、最近报价、合同到期日、合作状态,用「打开Excel」指令读取,不要用数据库,小团队Excel够用且好维护。

home.linyan.cloud 上有供应商管理Excel模板下载,字段已经设好数据验证规则,直接填数据不用自己设计表结构。

影刀流程的逻辑顺序:先检查合同到期→发提醒邮件→再处理询价邮件→生成比价表→标记最低价供应商,顺序不能乱,先保证合同不过期再搞比价。

安装影刀时注意:如果Excel是WPS,要用WPS专用指令集,不要用Microsoft Excel指令集,两个指令集不通用,用错了打开文件就报错。

二、元素定位:从邮件里提取询价信息

询价邮件用影刀的「Outlook」扩展读取,用「获取邮件」指令读取未读邮件,主题包含「询价」关键词的才处理,用「条件判断」指令过滤主题。

邮件正文里的产品名称和数量用「正则表达式匹配」指令提取,比如产品:(\S+)\s+数量:(\d+),提取后存到字典变量,后面生成询价邮件时直接用。

邮件附件(询价单Excel)用「保存邮件附件」指令保存到本地临时目录,然后用「打开Excel」指令读取附件内容,读取完用「删除文件」指令清掉临时文件,不清理C盘迟早爆满。

邮件里的报价回复用「回复邮件」指令,回复内容用「字符串格式化」指令把报价填进去,模板提前写好:感谢询价,XX产品报价XX元,交货期XX天,改占位符比每次手写好10倍。

元素定位的坑:Outlook的邮件列表是动态加载的,用「获取邮件」指令比用网页自动化抓Outlook网页版稳,网页版加载慢还经常超时。

三、变量与数据类型:供应商信息的数据组织

供应商信息表读取后用「列表」变量存储,每个元素是一个字典:{"名称":"A公司","联系人":"张三","报价":100,"到期日":"2024-06-30"},后面遍历用For循环直接取字典里的字段。

合同到期日用「日期时间」变量存储,从Excel读出来的日期可能是字符串,要用「转换为日期」指令转成日期类型,不转后面计算剩余天数会报错。

比价表用「字典」变量组织,key是产品名称,value是一个列表,列表里是每个供应商的报价信息,这样同一个产品的比价放在一起,生成比价表时直接遍历这个字典。

报价金额用「数字」变量存储,从邮件或Excel里读出来的是字符串,要用「转换为数字」指令转换,转换失败说明数据里有非数字字符(比如「100元」里的「元」),要先去掉再转换。

变量的筛选感:同一个供应商信息,在不同场景下用不同的变量组织方式——检查合同到期时按到期日排序,生成比价表时按报价排序,排序方式用「列表排序」指令的key参数控制。

四、流程控制:合同到期检查与分级提醒

合同到期检查用「For循环」遍历供应商列表,用「日期时间差值」指令计算到期日 - 今天 = 剩余天数,剩余天数存到变量里,后面条件判断用。

条件判断做分级提醒:剩余天数 <= 7→ 发红色预警邮件(紧急),剩余天数 <= 30→ 发黄色提醒邮件(常规),剩余天数 > 30→ 不处理,三个条件用「条件判断」指令的「否则如果」分支实现。

邮件发送完用「条件判断」判断发送是否成功,成功则在Excel里把「提醒状态」字段改为「已提醒」,不成功则记录到「异常日志」Sheet,后面手动处理,不要发了就完事,发了失败你不知道。

循环里加「等待」指令设1秒延迟,不要瞬间发几百封邮件,会被邮件服务器当成垃圾邮件屏蔽,屏蔽了你还不知道,合同到期了没提醒到要背锅。

流程控制的真实细节:合同到期日如果是空值(新供应商还没签合同),计算剩余天数会报错,用「条件判断」先判断到期日是否为空,为空就跳过这个供应商,不判断整个流程会中断。

五、网页自动化:从供应商网站抓取最新报价

询价时先去供应商官网抓最新报价,用「打开网页」指令打开供应商价格页面,用「等待元素出现」指令等价格元素加载完,不等直接抓拿到的是占位符不是真实价格。

动态加载的价格要用「执行JavaScript」指令滚动到元素位置触发加载,滚动用window.scrollTo(0, document.body.scrollHeight),触发加载后再等2秒,不触发拿到的是初始价格不是最新价格。

多个供应商的报价对比用「列表循环」遍历供应商URL列表,每个URL打开后抓价格,存到比价表的字典里,抓完一个关标签页再开下一个,同时开多个标签页内存占用高还容易串数据。

网页自动化的坑:供应商网站有反爬,频繁访问会跳验证码,用「条件判断」检测是否出现验证码,出现了用「发送快捷键Ctrl+W」关标签页,等10分钟再继续,不要硬刚验证码,硬刚成功率几乎为0。

抓到的价格要验证合理性:用「条件判断」判断价格是否在合理范围内(比如和历史均价对比,波动超过50%就标红人工复核),不验证直接拿去比价可能用了错误报价。

六、数据处理:生成比价表与标记最低价

比价表用Excel生成,用「写入Excel」指令把比价数据写到新的Sheet,字段包括:产品名称、供应商A报价、供应商B报价、供应商C报价、最低价供应商,一行一个产品。

标记最低价用「For循环」遍历每行数据,用「条件判断」判断哪一列报价最小,最小的那个单元格用「设置单元格背景色」指令标绿,视觉上一眼看出谁最低。

报价相同的处理:用「条件判断」判断多个供应商报价是否相等,相等则在「最低价供应商」字段写「A/B报价相同」,不要随便选一个,选错后面采购走了关系。

比价表生成后存到「比价历史」文件夹,文件名带日期,用「字符串格式化」指令生成:比价表_2024-06-15.xlsx,每次生成新文件不覆盖旧文件,留历史记录备查。

数据处理的真实细节:Excel里写入报价后要设置单元格格式为「货币」或「数字」,不设置格式后面做SUM计算时会报错,因为看起来是数字其实是文本格式。

七、鼠标键盘图像自动化:操作Excel条件格式

合同到期日的视觉提醒用Excel条件格式,影刀的「设置条件格式」指令可以设置:剩余天数<=7标红,<=30标黄,这步用指令设置比手动设置可维护性强,换电脑不用重新设置。

条件格式的设置用「鼠标点击」指令点击Excel的「开始→条件格式→新建规则」,这步必须用鼠标操作因为影刀没有直接设置条件格式规则的指令,只能用UI自动化绕。

标红和标黄的单元格用「查找单元格」指令找到所有标红的单元格,然后用「发送邮件」指令给采购负责人发预警邮件,邮件里附上标红单元格的行号,方便采购快速定位。

Excel里的图片(供应商营业执照扫描件)用「点击图片」→「另存为」操作提取,用「鼠标键盘」指令模拟快捷键F2重命名图片为供应商名称,不重命名图片都是「图片1、图片2」找不到对应供应商。

鼠标操作的坑:Excel的快捷键在不同版本里不一样,2016版和2019版的「条件格式」菜单位置不一样,用「发送快捷键Alt+H+L」触发条件格式菜单,快捷键比点击坐标稳。

八、进阶技能:自动发询价邮件与汇总回复

给多个供应商发询价邮件用「For循环」遍历供应商联系邮箱列表,每封邮件的主题写询价:产品XXX - {公司名},用「字符串格式化」把公司名填进去,每家的主题不一样方便供应商回复时保留主题。

询价邮件发出后用「标记邮件」指令把发出的邮件标为「询价已发」,后面检查供应商是否回复时用「获取邮件」指令只获取未标记邮件,减小处理范围,提高处理速度。

供应商回复报价后用「读取邮件」指令读取回复内容,用「正则表达式」提取报价数字,提取后自动填到比价表的对应列,不用人工抄数,抄数必出错,出错必被采购骂。

询价截止时间用「等待」指令设 deadline,超过截止时间还没回复的供应商用「标记单元格颜色」标灰,表示「未回复」,采购打电话催时一眼看出谁没回。

进阶技巧:用「创建Outlook任务」指令在Outlook里创建跟进任务,任务主题是「跟进XX供应商询价回复」,到期时间是询价截止时间后1天,不用自己记谁没回。

九、平台实战:合同到期提醒+询价比价完整流程

实战场景:每天早上9点自动检查合同到期日,30天内到期的发提醒邮件;收到询价邮件后自动给所有供应商发询价邮件,汇总回复后生成比价表,标记最低价供应商。

第一步:合同到期检查
用「打开Excel」指令打开供应商信息表→用「For循环」遍历每一行→用「日期时间差值」计算剩余天数→剩余天数<=30的发提醒邮件→邮件发送后更新「提醒状态」字段。

第二步:询价邮件处理
用「获取邮件」指令读取未读邮件→主题包含「询价」的用「正则表达式」提取产品信息→用「For循环」遍历供应商列表发询价邮件→发完后把邮件标为「询价已发」。

第三步:汇总报价生成比价表
供应商回复后用「读取邮件」指令读取回复→提取报价填到比价表→用「For循环」找每行最低价→用「设置单元格背景色」标绿最低价→保存比价表到「比价历史」文件夹。

第四步:通知采购
用「发送邮件」指令把比价表发给采购负责人,邮件正文写「共X家供应商报价,最低价为XX公司的XX元」,不要只发附件不写结论,采购打开邮件就能看到结果。

两个平台(Excel+Outlook)打通后,供应商管理从人工每天检查变成每天自动检查+异常才通知,人工工作量从每天2小时降到每周10分钟。

十、系统联动:Excel与邮件和日历的协同

合同到期提醒除了发邮件,还要在Outlook日历里创建跟进任务,用「创建约会」指令在合同到期前15天创建「跟进续约谈判」任务,任务提醒设在合同到期前15天,双保险不漏。

比价表生成后用「导出为PDF」指令生成PDF版,PDF发给供应商时不会被盗改报价,Excel发过去供应商可能「手滑」改了报价再回复你,扯皮扯不清。

供应商信息表更新后用「同步到云端」指令同步到OneDrive或百度网盘,不要只存本地,电脑坏了供应商联系方式全没了,采购要你赔损失。

系统联动的坑:Outlook的「创建约会」指令在Outlook未启动时会有弹窗提示「是否允许此程序操作Outlook」,要用「条件判断」先检测Outlook是否运行,没运行先启动再创建约会。

跨系统联调时先测邮件发送再测Excel写入再测日历创建,三个系统逐个验证通过再串联,一口气写完所有逻辑调试时发现哪个环节错了要拆开重来。

十一、工程化与规范:供应商管理流程的可维护性

供应商信息表的字段顺序、Sheet名称、文件存放路径全部写到「配置表」(另一个Excel文件),主流程里用「读取配置表」指令加载配置,不要硬编码,硬编码换环境要改流程。

邮件模板(提醒邮件模板、询价邮件模板、比价结果通知模板)存到「邮件模板」Sheet,模板里用{占位符}表示要替换的内容,主流程里用「字符串替换」指令批量替换占位符,改模板不用改流程。

异常日志用「写入日志」指令记录到Excel的「异常日志」Sheet,记录的字段包括:时间、供应商名称、异常类型、异常描述、处理状态,出问题翻日志比调试快,调试还要复现问题,翻日志直接看。

工程化细节:供应商信息表定期备份,用「复制文件」指令每周五下午复制到「备份」文件夹,文件名带日期,万一主文件损坏 or 误删可以恢复,恢复比重新建表快10倍。

版本管理:每次改了供应商管理流程,在影刀的「版本备注」里写清楚改了什么,比如「新增询价邮件自动提取报价功能」,出问题能快速回滚到上一个稳定版本。

十二、速查表与常见报错

问题原因解决办法
读取Excel报错「文件被占用」Excel文件被其他程序打开先关掉Excel再运行影刀流程,或用「强制关闭Excel进程」指令
日期计算剩余天数报错Excel里的日期是字符串格式用「转换为日期」指令先转换再计算,不转换报类型不匹配
邮件发送失败报「SMTP认证失败」邮箱授权码过期重新获取QQ/163邮箱的SMTP授权码,更新到影刀配置里
条件格式设置不生效鼠标点击坐标不对用快捷键Alt+H+L触发条件格式菜单,不要点坐标
提取报价数字失败邮件正文格式不固定用正则表达式\d+(\.\d+)?提取数字,不依赖固定格式
比价表写入后格式丢失单元格格式未设置写入后用「设置单元格格式」指令设为「货币」或「数字」格式
Outlook操作报「权限不足」Outlook未信任影刀程序在Outlook信任中心把影刀加入可信加载项
循环处理到一半中断某个供应商数据异常(空值/格式错)用「尝试捕获」包裹循环体,捕获异常后记录并继续下一个
生成的PDF乱码中文字体未嵌入导出PDF时勾选「嵌入字体」选项,不勾选换台电脑打开就乱码
定时任务到点没跑Windows任务计划程序未启用检查Windows任务计划程序里的影刀任务是否启用,被禁用就不会触发

内容标签:影刀RPA、供应商管理、合同到期提醒、询价比价、Excel自动化、邮件自动化

作者:林焱。到此为止

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 6:38:37

Positron 上游合并中的 Codicon 冲突处理与 e2e 定位器漂移排查指南

开发工具代码编辑器数据科学 【免费下载链接】positron Positron, a next-generation data science IDE 项目地址&#xff1a; https://gitcode.com/gh_mirrors/po/positron 点击查看 免费下载 本文面向参与 Positron&#xff08;下一代数据科学 IDE&#xff0c;基于 VS Code …

作者头像 李华
网站建设 2026/10/5 6:37:35

SignalHound USB频谱分析仪:实时频谱与射频调试实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华