Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

  • A+
所属分类:Python学习

Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

转自:数海丹心

摘要: 每月的年假统计和分发工作,对于公司的人事部门来说,无疑是一项繁琐且容易出错的任务。在这个技术驱动的时代,Python自动化不仅能够提升工作效率,还能在不经意间赢得美女的芳心。本文将介绍如何利用Python自动化技术,从Excel汇总表中分割出各部门的年假数据,并自动发送到相应部门的邮箱,让这项工作变得轻松而准确,帮助国企的人事小姐姐解决月底繁重的年假数据整理和分发工作,让她从此告别繁琐的手工操作。


人事小姐姐的每月烦恼

国企的系统虽然稳定,但功能老旧,缺乏高效的数据处理能力。每月月底,人事小姐姐都要从系统中导出年假明细表,然后手动按照部门筛选、整理,再发送给各部门负责人。公众号的一位粉丝小姐姐,作为人事部门的一员,就遇到了这样的烦恼,这个过程耗时耗力,每次要花费几天时间完成这个重复性工作,让她倍感压力。
Python自动化办公

问题背景

人事小姐姐面临的问题是典型的数据整理和分发问题。通过Python自动化技术,我们可以将这一过程自动化,大大提高工作效率。

实现步骤

读取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邮箱程序授权码的方法:

640Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

核心优势

  • 自动化处理:一键自动生成部门年假表格和发送邮件。
  • 节省时间:从几天的工作缩短到几分钟。
  • 减少错误:避免人工操作中可能出现的错误。

结果展示

通过Python脚本,人事小姐姐的工作效率得到了极大的提升。现在,她只需导出数据,运行Python程序,就能自动完成所有部门的年假数据整理和邮件发送工作。
Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

附件没有拓展名,用Excel打开既可

Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

 

结语:技术成就魅力

Python自动化技术不仅帮助人事小姐姐解决了实际工作难题,更让她对技术的魅力有了新的认识。通过技术提升工作效率的同时,也让她对技术背后的人产生了好感。
学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Python自动化:解放双手自动拆分Excel,自动发邮箱,几秒钟完成3600分钟工作!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

  • 我的微信
  • weinxin
  • 我的知识星球
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: