Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!
Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!
摘要: 每月的年假统计和分发工作,对于公司的人事部门来说,无疑是一项繁琐且容易出错的任务。在这个技术驱动的时代,Python自动化不仅能够提升工作效率,还能在不经意间赢得美女的芳心。本文将介绍如何利用Python自动化技术,从Excel汇总表中分割出各部门的年假数据,并自动发送到相应部门的邮箱,让这项工作变得轻松而准确,帮助国企的人事小姐姐解决月底繁重的年假数据整理和分发工作,让她从此告别繁琐的手工操作。
人事小姐姐的每月烦恼
问题背景
实现步骤
读取Excel汇总表并提取部门名称:
import pandas as pd
df = pd.read_excel("年假明细表.xlsx")
depts = df["部门"].unique()
按部门分割数据并保存为多个Excel文件:
for dept in depts:
department_df = df[df["部门"] == dept]
filename = f"{dept}_年假情况.xlsx"
department_df.to_excel(filename, index=False)
自动发送邮件程序:
def send_email_with_attachment(
sender_email, recipient_email, subject, body, attachment_path, userName_AuthCode, attach_name):
# 邮箱服务端
message = MIMEMultipart()
# email = MIMEText(content, 'plain', 'utf-8')
message['Subject'] = subject # 定义邮件主题
message['From'] = "AI通知机器人" # 发件人
message['To'] = ",".join(recipient_email) # 收件人(可以添加多个,若只有一个收件人,可直接写邮箱号)
body = body
# 邮件正文
message.attach(MIMEText(body, 'plain'))
# 发送邮件
attachment = open(attachment_path, "rb")
part = MIMEBase("application", "octet-stream")
# 设置附件信息
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header("Content-Disposition",
"attachment; filename=attach_name")
message.attach(part)
# 添加附件到邮件
# message.attach(part)
# QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSL
smtp = smtplib.SMTP_SSL(mailserver, port=465)
smtp.login(sender_email, userName_AuthCode)
smtp.sendmail(sender_email, ','.join(
recipient_email), message.as_string())
smtp.quit()
# logging.info('恭喜,邮件发送成功了')
调用程序发送邮件
if __name__ == "__main__":
# split_Excel("年假情况.xlsx", "年假_按部门汇总")
mailserver = 'smtp.163.com'
# 发件人-填写自己的邮箱
sender_email = 'zdy15921159716@163.com'
# 邮箱发件授权码-为发件人生成的授权码,具体步骤见文章中截图
userName_AuthCode = 'OCRSEVQEMWCIXKNY'
# 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示
# recipient_email = ['young@realstarie.com']
subject = '你们部门的年假情况'
body = '附件是你们部门的年年假情况,请查阅'
department_emails = {
"采购部": ['young@realstarie.com', "865193996@qq.com"], # 可以添加多个收件人
"船务部": ['young@realstarie.com'],
# ...其他部门
}
df = pd.read_excel("年假情况.xlsx")
depts = ["采购部", "船务部"]
for dept in depts:
attachment_path = f'年假_按部门汇总\年假情况_{dept}.xlsx' # 附件路径
recipient_email = department_emails.get(dept)
print(recipient_email)
attach_name = f"年假情况_{dept}"
send_email_with_attachment(
sender_email, recipient_email, subject, body, attachment_path, userName_AuthCode, attach_name)
获取163邮箱程序授权码的方法:
核心优势
-
自动化处理:一键自动生成部门年假表格和发送邮件。 -
节省时间:从几天的工作缩短到几分钟。 -
减少错误:避免人工操作中可能出现的错误。
结果展示
附件没有拓展名,用Excel打开既可
结语:技术成就魅力
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论