用Python自动发工资条,只需30行代码!(附源码)

7 阅读2分钟

打工人每个月最期待的是什么?发工资!

但作为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" )

三、如何使用

  1. 准备工资表 Excel,格式如下: | 姓名 | 邮箱 | 基本工资 | 绩效 | 扣款 | 实发 | | 张三 | ... | 8000 | 2000 | 1500 | 8500 |

  2. 开启邮箱SMTP服务(QQ邮箱在设置→账户→开启POP3/SMTP)

  3. 运行脚本,坐等工资条自动飞向每位员工

四、进阶功能

如果你还想加功能,可以找我定制: ✅ 附件PDF版工资条 ✅ 企业微信/钉钉通知 ✅ 自动汇总统计图表 ✅ 一键生成全年工资汇总

五、结语

用Python自动化办公,把重复的工作交给机器,把时间留给更有价值的事情。

需要源码和模板的同学,评论区留言"工资条",我私发给你!

喜欢的话点个赞,下次教你用Python自动生成Excel报表~


注意事项:

  • 本文为技术教程,请勿用于非法用途
  • 发送前请先测试,确认格式无误
  • 建议先发给自己测试,再批量发送