DOCS · WORKFLOW NOTE 02
把一次性的活变成模板:
文档批量处理的四条规矩
“这 120 份文档,把每一页的旧校名换成新校名,图片也换掉。”
手工做要两天,脚本做要两小时。但真正决定成败的不是脚本,是规矩。
01第一条:原件不动
任何批处理,输入目录只读,输出写到新目录。命名规则固定:
原名_新版本_日期.docx 例:结业报告_2026版_20261019.docx
不覆盖、不原地改、不在原目录里生成临时文件。这条规矩听起来保守,但它是唯一能让你在出错时全身而退的东西。客户的原件只有一份。
02docx 批量改图:先找全,再替换
docx 本质是个 zip。图片不在正文里,在 word/media/,由 document.xml 的关系文件引用。所以“替换第 3 张图”不能靠顺序猜,要先建立映射。
- 先列出所有
word/media/*,按文件名排序,和文档里实际出现的顺序往往不一致。 - 页眉、页脚、脚注里的图片是独立的关系文件,正文替换不会碰到它们。
- 同一个图片文件可能被多处引用,换一次等于全换。
- 替换后保持原扩展名和尺寸;改了宽高比,版式会当场错位。
最稳的做法不是“按位置换”,而是“按文件名换”:让客户把新图命名成旧图的名字,脚本只负责拷贝。少一层判断,少一半事故。
03xlsx 清洗:先写标准答案
不要一上来写脚本。先手工做一份 10 行的“标准结果”,把期望长什么样定死,再让脚本去对齐。否则你会在第 80 行发现“日期列里混着文本”,然后推翻重来。
- 合并单元格先拆开再处理,不然 pandas 读出来是 NaN。
- 隐藏行、筛选状态、冻结窗格都不影响数据,但会影响客户的“看起来对不对”。
- 日期统一成
YYYY-MM-DD文本,别交一个 Excel 序列号。 - 公式要么全部转成值,要么在说明里写清依赖,别交一个打开就报错的表。
04什么时候值得模板化
判断标准很简单:同样的活做过三次,才值得写成模板。只做一次就写脚本,是在用两小时省一小时。
另一个信号是变量数量。如果一份模板需要填超过 7 个变量,说明它其实混了两件事,应该拆成两个模板。
交付前自检
- 抽样 10%,逐份打开看过,不是只看脚本日志
- 原文件哈希没变(
certutil -hashfile或sha256sum) - 有一份可回滚的备份,路径写在交付说明里
- 说明书写给“不看你脚本的人”:怎么用、输入什么、出错找谁
自动化的价值不在“快”,在“每次结果一样”。快只是顺带。