共两个脚本:
prepare_member_assets.ps1:给商家印刷用generate_card.ps1:生成预览图用
card/
├── template.psd
├── generate_card.ps1
├── prepare_member_assets.ps1
├── 社员卡(收集结果)/
│ ├── 社员卡(收集结果).xlsx
│ └── 图片/
└── output/
默认数据目录结构:
社员卡(收集结果)/
├── 社员卡(收集结果).xlsx
└── 图片/
主要使用列:
- CN(圈名/网名)(必填)
- 请选择部门~(必填)
- 请上传头像(看下面小字!)(必填)
头像列可填写文件名或路径。脚本会做多种兼容匹配(包括特殊字符、不可见控制字符差异)。
- Windows
- PowerShell 5.1+
- Microsoft Excel(COM 读取 xlsx)
- Python 虚拟环境(推荐
.venv) - Pillow(用于个别图片格式回退解码,例如扩展名为
.jpg但实际是 WebP)
- Windows
- PowerShell 5.1+
- Microsoft Excel
- Adobe Photoshop(COM 自动化)
脚本:prepare_member_assets.ps1
功能:
- 从收集表导出新表(仅
姓名、部门两列) - 将头像中心裁剪并缩放为 683x683(和psd模板头像尺寸一致)
# 自动查找数据目录
.\prepare_member_assets.ps1
# 指定数据目录
.\prepare_member_assets.ps1 -DataFolder ".\社员卡(收集结果)"
# 指定输出目录
.\prepare_member_assets.ps1 -DataFolder ".\社员卡(收集结果)" -OutputDir ".\output\member_assets"output/member_assets/导出_姓名部门.xlsxoutput/member_assets/图片/{姓名}.jpg|png...
脚本:generate_card.ps1
功能:
- 读取 Excel 中的 CN、部门、头像
- 替换 PSD 模板图层:
CN、部门、头像 - 导出预览图
# 自动查找数据目录
.\generate_card.ps1
# 指定数据目录
.\generate_card.ps1 -DataFolder ".\社员卡(收集结果)"
# 指定模板和输出目录
.\generate_card.ps1 -DataFolder ".\社员卡(收集结果)" -OutputDir ".\output" -TemplatePath ".\template.psd"每位成员两张图:
output/{CN}_画板1.pngoutput/{CN}_画板2.png
当前脚本按画板真实边界导出(artboardRect),用于保证尺寸正确。
- 必须存在名为
CN的文字图层 - 必须存在名为
部门的文字图层 - 必须存在名为
头像的智能对象图层 - 需要两个画板:
画板 1、画板 2
当前模板中每个画板尺寸为 2426x1530,因此导出的 画板1/画板2 也应为 2426x1530。