工资表批量拆分成单人文件:邮件合并 / 脚本 / 工具三条路

需求前提

工资条分发的核心不是「怎么拆」,是「怎么保证谁也看不到别人的」。这一点决定了方案选择。

方案一:邮件合并(Word + Outlook)

用 Word 的邮件合并功能读取 Excel 名单,配合 Outlook 逐人发送。

优点:Office 自带,一次能发几百人。

缺点:

适用:只有「姓名 + 几个数字」的简单通知。

方案二:脚本生成 + 程序化发送

import openpyxl
from pathlib import Path

wb = openpyxl.load_workbook("工资总表.xlsx")
ws = wb.active

for row in ws.iter_rows(min_row=2, values_only=True):
    name, *data = row
    # 实际项目中这里需要新建工作簿、复制表头与样式后再写入
    ...

优点:格式可控、逻辑透明,能接进完整的自动化流水线。

缺点:

方案三:本地批量拆分工具

关键约束:必须在本机运行。工资数据过一次公网服务,性质就变了。

这类工具的典型流程:选表 → 指定「姓名」列 → 输出每人一个文件。

三种方案对比

维度邮件合并脚本本地工具
需要编程否是否
保留格式否需额外开发是
数据出网否取决于发送方式否
二级拆分否需自己实现是
批量打包否可是

总结

  1. 只有几个字段的简单通知,邮件合并够用
  2. 每月都做、格式有要求,选能保留格式的本机工具
  3. 需要按部门汇总 + 按人分发两套结果,必须支持二级拆分
  4. 无论哪种方案:先备份原表,先拿两三行小样本试跑,确认无误再全量执行
  5. 工资类数据,把「是否联网」当成硬性筛选条件

示例中的工具是 ExcelRouter(开源 MIT),桌面版与 AI 技能版共用同一套内核:

GitHub:https://github.com/MarsandSea/ExcelRouter

Gitee 镜像:https://gitee.com/Marsandsea/Excelrouter

文中提到的工具:ExcelRouter

把一个或一整批 Excel 按部门、区域、工号等字段拆成多个文件,完整保留复杂表头与格式, 可再按人二级拆分并打包 ZIP。Windows + 银河麒麟 / 统信 UOS,免费开源(MIT), 全程本机处理,不联网、不上传。

下载(国内 · Gitee) GitHub 源码 ⭐