ARTICLE DETAIL

资讯详情

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

影刀RPA实操指南:Word批量生成合同与模板填充

影刀RPA实操指南:Word批量生成合同与模板填充 影刀RPA实操指南Word批量生成合同与模板填充月底要给三十家门店续签合同改客户名、换金额、换日期逐份打开Word手动改一下午就耗进去了改到第二十份还会串行。这篇文章讲怎么用影刀RPA把Word批量生成合同做成一键运行Excel名单读进来模板占位符自动替换文件按客户名自动另存顺带把表格、图片和PDF导出也一起批量化。我是非技术出身这套流程在公司跑了快两年踩过的坑全部写在正文里。先说结论Word批量生成合同的核心就三个指令——【读取Excel内容】拿数据、【替换Word文本】填模板、【保存Word】出成品剩下全是细节处理。一、安装与环境准备Word自动化跑起来的前提影刀RPA在官网下载安装第一次打开会引导安装浏览器插件纯做Word自动化可以不装但建议装上后面涉及网页端合同系统会用到。界面分三块左侧应用列表、中间流程画布、右侧指令面板在指令面板搜Word就能看到【打开/新建Word】【替换Word文本】【写入文本至Word中】这一整组指令。版本差异要先心里有数这直接影响批量任务能不能一次跑完版本运行时长适合谁社区版每天30分钟个人学习试用创业版无限制小团队批量任务企业版无限制集中管控正式生产环境批量生成合同一次跑几十份社区版的30分钟大概率不够。我当年就是跑到第20份被掐断还以为是流程坏了排查半天才发现是版本限制后来换的创业版。还有一个开关容易漏【打开/新建Word】指令里的驱动方式下拉默认自动检测会按顺序检测office和WPS。如果你的电脑装的是WPS但默认打开方式被改过就会报奇怪的错误明确选WPS或office最稳。勾选是否可视化则方便调试时肉眼看到Word在动。二、模板设计占位符怎么定替换才不出错模板填充的第一步不是写流程是改模板。把合同里所有要变的地方改成占位符比如【客户名称】【合同金额】【签订日期】。用全角方括号【】而不是半角[]因为半角中括号在合同正文里可能本来就有替换时会误伤。占位符必须全文档唯一且不能被拆散。这是我吃过最亏的坑模板里写甲方【客户名称】公司看起来没问题但有人后期编辑时Word自动纠错在【和客户名称之间插了个空格替换指令就再也找不到了。所以模板定稿后锁成只读谁都不许动。替换用【替换Word文本】指令参数逐个说Word对象选【打开/新建Word】指令保存的那个变量查找文本填【客户名称】替换为填从Excel读出来的客户名变量全部替换必须勾选不勾只替换光标后第一处保存文本替换个数至强烈建议保存比如存成变量replace_countreplace_count这个变量别浪费后面加一个If条件判断如果替换个数为0说明这份合同没替换成功记入失败清单跳过而不是生成一份带着占位符的废合同。我就因为没做这个校验给客户发出去过一份印着【客户名称】字样的合同社死程度自己体会。三、数据源处理把Excel名单读成流程能用的结构数据源用【打开/新建Excel】打开名单表第一行是表头客户名称、合同金额、签订日期下面每行一个客户。用【读取Excel内容】指令读取方式选已使用区域内容读出来是二维列表——非技术同学记一下这个概念二维列表就是列表里面套列表外层每一项是一行行里的每一项是一个单元格。【读取Excel内容】的返回类型是有明确规则的单元格内容是字符串行和列内容是一维列表区域和已使用区域内容是二维列表。后面拼文件名、比对金额全靠搞清楚手里拿到的是哪一种。这个场景用得最多的变量类型就三种字符串单元格读出来就是字符串金额会变成12800.0这种带小数点的样子列表一维列表是一行数据二维列表是整张表字典把表头和每行数据组合成字典用data[“客户名称”]取值比记下标data[0]可读性强得多这是两年实操里最值得学的一个习惯四、核心流程搭建循环、判断、异常一个不能少整体链路五步【打开/新建Excel】读取名单存成二维列表变量ForEach列表循环循环项是每一行客户数据循环体内【打开/新建Word】打开合同模板驱动方式选好保存Word对象至变量依次执行多条【替换Word文本】替换完【保存Word】按客户名另存【关闭Word】关闭对象进入下一轮循环整个循环体建议拖进Try块里Catch块放【输出日志】记录客户名和报错信息Finally块放【关闭Word】。因为三十份合同里只要有一份文件被占用打不开整个流程就断了有异常处理之后坏的跳过、好的继续跑完看日志补那一份就行。这也是Try-Catch-Finally机制最典型的用法Try放业务Catch存错误Finally做无论如何都要执行的清理。另存文件名和金额格式用Python模式拼一下日期格式化这种事让代码干比手工靠谱# 输入row 是从Excel读出的一行数据列表类型# row[0]客户名称 row[1]合同金额 row[2]签订日期importdatetime# Excel日期单元格读出来是日期对象文本单元格读出来是2026/9/1字符串# 先判断类型再格式化成 20260901drow[2]ifisinstance(d,datetime.datetime):date_strd.strftime(%Y%m%d)else:date_strstr(d).split( )[0].replace(/,).replace(-,)# 拼出规范文件名客户名称_合同_20260901.docxfile_namef{row[0]}_合同_{date_str}.docx# 金额转千分位字符串填进模板更正式12,800.00amountf{float(row[1]):,.2f}这里有个高频坑同样是日期列单元格格式是日期的读出来是日期对象格式是文本的读出来是字符串两种处理方式完全不同所以代码里先判断isinstance再走不同分支。五、进阶技巧表格、图片、PDF导出一起批量做合同里经常带付款明细表用【插入Word表格】指令表格数据参数要传二维列表文档里明确写了这个参数需要点亮python模式再填很多人卡在这一步就是因为直接在默认输入框里贴了文本。插入前勾插入表格前换行不然表格会怼在正文后面。反向操作也有【读取Word表格】指令表格查找方式二选一——按表格位置从1开始超过表格数量返回错误或按表格内容返回第一个包含指定内容的表格找不到返回None。我用它做过读取客户回填的合同表格、核对金额是否被改的校验环节。要盖电子章位图的用【插入图片】指令图片来源选本地图片图像缩放百分比设100勾插入图片前换行。最后归档一步加【Word导出PDF】指令导出范围选所有页面勾如果文件存在则覆盖PDF保存路径不存在会自动创建不用提前建目录。这些指令都出自影刀官方帮助中心的Word自动化专题不是野路子。另外影刀客户端的应用市场里有现成的Word批量处理类模板应用可以先获取一个拆开看别人怎么搭结构再改成自己的业务这比从零搭快得多。六、元素定位四合一Word流程里什么时候用到定位做纯本地Word用不上元素定位但两个场景一定用得上合同数据来自网页系统OA、CRM后台或者要把生成好的合同传回网页端。这时候就是标准的网页自动化四件套——捕获元素、XPath、CSS选择器、正则表达式。选型一句话说清能捕获就先捕获点顶部工具栏捕获元素按钮目标上出现橙色边框后点击确认捕获不稳定再手写XPathCSS选择器适合class命名规整的页面正则表达式只用来处理文本内容不做定位。XPath六种写法里实战中最常用的是属性定位和contains模糊匹配# 精确属性定位合同系统里的下载合同按钮 //button[iddownload-contract] # 模糊匹配按钮文案带空格或动态变化时用contains //*[contains(text(),下载合同)] # 参照物定位通过表头客户名称找同一行里的下载图标 //*[text()客户名称]/../following-sibling::*[1]//a配合【获取元素对象(web)】指令定位方式支持捕获元素、CSS选择器、XPath三种还能设置等待元素存在的超时时间网页慢的时候不会立刻报错。网页端批量下载合同模板后接回本地的Word替换流程就是我现在的完整链路。七、工程化规范子流程拆分与调试跑得稳的关键流程超过二十个指令就必须拆子流程我的固定拆法是三块01_读取数据Excel读取加数据清洗输出二维列表02_生成单份合同传入一行数据完成打开、替换、保存、关闭输出成功或失败03_收尾汇总统计成功失败数量发邮件通知子流程之间用流程参数的输入输出传数据别用全局变量硬传两个流程同时跑会串数据。命名带编号前缀指令面板里一眼能看出执行顺序。调试就两招右键指令选添加断点点运行后流程停在断点处配合底部的变量面板看每轮循环项内容对不对拿不准就单步执行一行一行过。我排查第17份合同金额错误那次就是在替换金额那条指令前打断点单步走了三遍才发现Excel里那一行的金额是合并单元格读出来是空值。八、系统联动跑完自动通知定时自动运行批量任务最怕我以为跑完了其实没跑。收尾子流程里加【发送邮件】指令把成功清单和失败清单作为附件发给自己收件人多个用英文分号隔开SMTP服务器下拉选常用邮箱勾选使用SSL和SMTP服务器需要身份验证身份验证处填授权码而不是邮箱登录密码这是新手最容易卡的一步163和QQ邮箱都需要先在邮箱设置里短信开通授权码。再往上走一级就是完整闭环影刀客户端里把应用设成定时任务每月25号晚上自动生成下月合同跑完邮件通知人只在出现失败记录时介入。官方的运行错误处理设置里还能直接配邮件、钉钉群、飞书群通知应用一报错自动推送Webhook消息不用自己写一行通知代码。九、易错速查表Word自动化高频问题对照报错或现象原因解决方法替换个数永远是0模板占位符被改混入空格、全半角不一致模板定稿锁定占位符统一全角【】流程卡死或对象丢失Word对象用完没有关闭每个打开配对【关闭Word】放进Finally块金额读出来是12800.0单元格被读成数字字符串Python转格式或读取时勾读取单元格显示的内容跑到一半停止社区版每天30分钟限制升级创业版或企业版或拆分任务多次跑第二轮循环打开报错上一轮Word对象未释放关闭指令移入Finally保证异常时也执行写入表格报格式错误表格数据没点亮python模式在表格数据参数处切换Python输入再传二维列表十、学习资源与延伸阅读入门先看两条官方线影刀帮助中心的Word自动化指令文档每个指令的参数说明都在里面以及影刀学院的【影刀RPA专题教程】Word自动化视频课。数据清洗拿不准的用魔法指令选数据处理场景把需求用大白话描述一遍就能生成处理指令生成后源码可见、完全可控跑错了还有智能修复兜底。这套Word批量生成合同的完整流程源码我放在代码仓库 home.linyan.cloud可以直接参考改造换成你自己的模板和名单字段就能跑。#影刀RPA #RPA自动化 #Word批量生成 #合同模板填充 #Excel数据处理作者林焱
返回列表