打工人每个月最期待的是什么?发工资!
但作为HR或财务,发工资条却是最头疼的事——几百个人的工资数据,一个一个导出、排版、发邮件,每次都要折腾大半天。
今天教你用Python,30行代码搞定工资条自动发送。
一、准备工作
安装Python和依赖库: pip install openpyxl pandas yagmail
需要准备:
- 工资表 Excel 文件(含姓名、邮箱、基本工资、绩效、扣款、实发等列)
- 一个发件邮箱(QQ邮箱/163邮箱等)
二、核心代码
import pandas as pd import yagmail from openpyxl import load_workbook from openpyxl.styles import Font, Alignment, Border, Side
def send_salary_slip(excel_file, sender_email, sender_password, smtp_server): # 1. 读取工资表 df = pd.read_excel(excel_file)
# 2. 连接邮箱
yag = yagmail.SMTP(user=sender_email, password=sender_password, host=smtp_server)
# 3. 逐行生成工资条并发送
for _, row in df.iterrows():
name = row['姓名']
email = row['邮箱']
# 生成工资条HTML
html_body = f"""
<h3>{name} 同学,{pd.Timestamp.now().month}月工资条已出</h3>
<table border="1" cellpadding="8" style="border-collapse:collapse;">
<tr><td><b>基本工资</b></td><td>{row['基本工资']}</td></tr>
<tr><td><b>绩效奖金</b></td><td>{row['绩效']}</td></tr>
<tr><td><b>社保扣款</b></td><td style="color:red;">-{row['扣款']}</td></tr>
<tr><td><b>实发金额</b></td><td style="color:green;font-size:18px;"><b>{row['实发']}</b></td></tr>
</table>
<p>如有疑问请联系财务部,请勿回复此邮件。</p>
"""
# 发送
yag.send(to=email, subject=f"{pd.Timestamp.now().month}月工资条-{name}",
contents=html_body)
print(f"✅ 已发送: {name} -> {email}")
yag.close()
print(f"\n🎉 全部发送完成!共 {len(df)} 人")
使用示例
send_salary_slip( excel_file="工资表.xlsx", sender_email="your_email@qq.com", sender_password="你的授权码", smtp_server="smtp.qq.com" )
三、如何使用
-
准备工资表 Excel,格式如下: | 姓名 | 邮箱 | 基本工资 | 绩效 | 扣款 | 实发 | | 张三 | ... | 8000 | 2000 | 1500 | 8500 |
-
开启邮箱SMTP服务(QQ邮箱在设置→账户→开启POP3/SMTP)
-
运行脚本,坐等工资条自动飞向每位员工
四、进阶功能
如果你还想加功能,可以找我定制: ✅ 附件PDF版工资条 ✅ 企业微信/钉钉通知 ✅ 自动汇总统计图表 ✅ 一键生成全年工资汇总
五、结语
用Python自动化办公,把重复的工作交给机器,把时间留给更有价值的事情。
需要源码和模板的同学,评论区留言"工资条",我私发给你!
喜欢的话点个赞,下次教你用Python自动生成Excel报表~
注意事项:
- 本文为技术教程,请勿用于非法用途
- 发送前请先测试,确认格式无误
- 建议先发给自己测试,再批量发送