星标下公众号,
获取更多优质教程
脑补一下这个场景
你坐在办公室里,面对的是一张写满了名字、工资、奖金的Excel表格。成百上千个名字映入眼帘,每一个都需要你单独处理、保存成一个文件,并且还要一个个地发邮件。你手指在键盘上飞舞,试图追赶那些即将到来的截止日期,但不管你多努力,文件数量还是让你头皮发麻。
你在一个员工的名字上停下,生成工资条、保存、打开邮箱、写邮件、添加附件、发送……然后,重复这个过程499次。
你感觉像是在经历一次又一次的复制粘贴的噩梦。手腕渐渐酸痛,眼睛也开始模糊。你甚至开始怀疑这是不是某种办公室里的酷刑。3天,72小时,这项任务无情地吞噬着你的时间和精力。
这种场景是不是让你感到无比绝望?现在想象一下,只需14行代码,你就能瞬间摆脱这个让人崩溃的循环,轻松搞定原本要花费整整3天的繁琐任务。来看看我是怎么实现的吧!
实际案例(已虚化了所有名称和数据)
在某大型企业中,小李(化名)每个月初都得处理500名员工的工资条。每个月他都要先从企业ERP把所有员工工资表导出,然后核对,再拆分成独立的工资条文件,并逐一发送给员工。这项任务的难度堪比攀登一座高山,当时开发者为了方便HR核对工资条,工资条就是一整张表,小李需要核对后手动操作每一行数据。手动完成整个任务需要近1500分钟,相当于整整3天的工作量。
眼看任务压顶,小李几乎崩溃。他甚至一度想着申请预算来开发一个系统自动化处理这项工作,但公司没有预算支持。正当他陷入绝望时,他在公众号搜索自动化,看到了我写的Python自动化!8行代码1.7秒搞定原来 1420 分钟的重复工作!。
Python自动化来救场
在前面案例中,我们只需要1.7s就将366个excel表格进行了修改并合并,对于这个案例由于要进行邮件发送,可能花费更长时间,但也仅需不到10行核心代码,即可让这项任务在几十秒钟内完成,不再需要小李拼命点击鼠标,忍受乏味的重复劳动。
Python脚本不仅可以自动拆分工资表,还能快速地生成并发送每一个员工的工资条。操作简单、效率极高,让小李瞬间从繁重的任务中解放出来。
代码实现:
import pandas as pd
import yagmail
import os
import time
# 设置发送者的邮箱信息
sender_email = 'xxx@163.com'
sender_password = 'zzzzzzzz'
sender_host = 'smtp.163.com'
t1 = time.time()
# 读取工资表格
df = pd.read_excel('简说Python员工工资表.xlsx')
# 初始化yagmail SMTP客户端
yag = yagmail.SMTP(user=sender_email, password=sender_password, host=sender_host)
# 逐行处理员工数据
for _, row in df.iterrows():
employee_name, employee_email = row['姓名'], row['邮箱']
salary_data = row.to_frame().T # 将当前行转为单行数据框
# 保存独立工资条
filename = f"./8月薪资/{employee_name}_工资条.xlsx"
salary_data.to_excel(filename, index=False)
# 发送邮件并附上工资条
yag.send(
to=employee_email,
subject="您的8月工资条,注意查收",
contents=f"尊敬的{employee_name},请查收附件中的工资条,如有疑问,请在9.6前联系小李反馈问题,9.7日将准时发放工资。",
attachments=filename
)
print(f"工资条已发送给: {employee_name}")
# 删除生成的文件
os.remove(filename)
print(f"所有工资条已发送完毕。\n耗时:{round(time.time()-t1, 1)}秒")
成效显著
当小李运行完这段代码后,他简直不敢相信自己的眼睛:几秒钟前还铺天盖地压过来的工作,现在已被自动化流程轻松解决。500封邮件准确无误地发了出去,仅仅花费了22s,他再也不用为了赶工期而牺牲个人时间。
结语
这次经历让小李深刻认识到,掌握编程和自动化技能在现代办公环境中是多么重要。Python作为一种强大且易学的编程语言,能够帮助你轻松应对那些重复性高、繁琐的任务。如果你也想像小李一样,从繁重的工作中解脱出来,Python自动化或许就是你的最佳选择。
想学习更多?可以看看我之前分享的Python入门自动化教程,有任何问题也欢迎随时交流。
时间花在哪里,成功就在哪里!
Python 编程能力评测试题,看看谁是真正的Python高手!
Python Pandas 全面指南:用法介绍及10个应用场景实践
另外我还有很多其他Python案例,我最近会陆续整理好,没有100也有50+ Python案例,大家可以加文末我的微信备注下:50+案例,我整理好后会第一时间免费分享给你(收取0.99元,避开白嫖不学习党)。