我帮公司财务写了个“群发工资条”的 Python 脚本!
来源 | 数据分析与统计学之美
本文介绍
这是一个很好的Python自动化的案例。对于小公司,采用手动方式一个个发送邮件还是可以的。如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了。鉴于此,我写了一个这样的程序,实现Python自动化群发工资条的功能。
原始数据源如下:
最终效果如下:
看到这里,你肯定也觉得很好玩儿吧?那么这样一个自动化程序,应该怎么做呢?接着往下看。
流程分析
其实这样一个代码,总结下来,就只有如下5步:
① 导入相关模块;
② 读取Excel表格;
③ 登录邮箱;
④ 准备要发送的邮件正文;
⑤ 发送邮件;
1)导入相关模块
from openpyxl import load_workbook # 用于操作Excel的模块import yagmail # 用于存储邮箱地址和密码的模块import keyring # 用于记录你邮箱地址和密码的模块from datetime import * # 用于获取当前系统时间的模块
2)读取Excel表格
# 加载Excel文件wb = load_workbook("群发工资条.xlsx",data_only=True)sheet = wb.activeprint(sheet)-------------------------------------------------------for row in sheet: row_text = "" for cell in row: if cell.column == "B": continue row_text += f"{cell.value}," print(row_text)------------------------------------------------------print("年:", date.today().year)print("月:", date.today().month)print(f"{date.today().year}-{date.today().month}月")
结果如下:
3)登录邮箱
yagmail.register("1127421544@qq.com","flmyucvntuvbjbcb")pwd = keyring.get_password("yagmail","1127421544@qq.com")yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com",password=pwd)
需要注意的是:第一行代码是用于存储你的邮件地址和密码。第二行代码使用keyring是为了记录你的邮件地址和密码。第三行代码直接登录邮箱。
关于Python怎么发送邮件,我之前写了一篇文章,进行了详细的介绍,下方是这篇文章的链接,大家可以参考。
Python发邮件:http://suo.im/60ylZ1
4)准备要发送的正文
由于发送的正文里面,需要我们发送一个带表格的邮件,这就有必要我们了解一点前端知识。因此,我在最后面花一个章节为大家讲解。
5)发送邮件
yag.send(f"{email}",f"数据分析与统计学之美有限公司{date.today().year}-{date.today().month}月工资情况",contents)
上述代码共有3个参数:第一个参数是收件人的邮箱;第二个参数是邮件的标题;第三个参数是发送的内容。
关于html代码的特别说明
会用Python发送邮件的人都知道,邮件正文内容可以写html代码。你可能觉得自己啥也不会,但是不用担心,我们不需要学习太高深的前端代码,做过爬虫的人耳濡目染,都能够看懂一些。
1)自己写一个简单的前端代码
我们可以直接用Pycharm创建一个新的html文件,里面会显示初始的前端代码,我们进行简单的添加,就可以获得一个表格啦!
最终在浏览器中显示效果如下:
从上图中根本看不出这是一个表格,那是因为我们没有为它设置一个样式,下面要做的就是为表格设置样式。
最终在浏览器中显示效果如下:
2)在Python中怎么写前端代码
从上图可以看出,整个前端代码就是用一些列的标签组成,同时标签都是成对出现的。因此,在Python中写前端代码时,只需要在对应位置添加对应的标签即可。
for row in sheet: row_text = "<tr>" for cell in row: if cell.column == "B": continue row_text += f"<td>{cell.value}</td>" row_text += "</tr>" print("\n") print(row_text)
结果如下:
完整代码
为了文章的完整性,我在文章最后放上我的代码。但是限于文章篇幅,最后我只粘贴一张图片,详细代码,大家可以去文末获取。
更多精彩推荐
☞无代码火了,短板有哪些?
☞写不出满分作文怎么办,GPT-3 来帮你
☞互联网不相信学渣
☞收藏!美国博士明确给出Python的高效学习技巧
☞垃圾回收策略和算法,看这篇就够了
☞2020 以太坊技术及应用大会·中国圆满落幕,大咖们的演讲精华都在这里了!
点分享点点赞点在看
我帮公司财务写了个“群发工资条”的 Python 脚本!相关推荐
- 我帮公司财务写了个“群发工资条”的Python脚本
作者 | 黄伟呢 来源 | 数据分析与统计学之美 介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个 ...
- 我帮公司财务写了个“群发工资条”的Python脚本!
1.本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了.鉴于此, ...
- python 解除excel的密码_我帮公司财务写了个“群发工资条”的Python脚本!
1.本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了.鉴于此, ...
- python对财务人员的帮助-帮公司财务妹子写了个“群发工资条”的Python脚本!
hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...
- python发微信工资条_帮公司财务妹子写了个“群发工资条”的Python脚本!
hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...
- 用Python 给财务写了个“群发工资条”,效果不错
作者 | 黄伟呢 来源 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 本文介绍 这是一个很好的 Python 自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一 ...
- 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~
导语 小编以前经常把下载的东西放在桌面或者"下载"文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档. 不知道你是 ...
- python计算工资编程-当财务部的人会编程,会发生什么?Python实现自动化群发工资条...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于数据分析与统计学之美 ,作者黄伟呢 PS:如有需要Pytho ...
- python 工资条_当财务部的人会编程,会发生什么?Python实现自动化群发工资条...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于数据分析与统计学之美 ,作者黄伟呢 PS:如有需要Pytho ...
最新文章
- laravel oauth2.0 文件上传报错
- 人工智能测试是什么意思_测试工程师必须懂这些
- 工作38:实现分页秀呀
- 解决:build_attrs() takes at most 2 arguments (3 given)
- java spring jdbc_Spring与JDBC支持
- Elementui input不能再循环数据中每次自动聚焦的问题
- 开环控制的两轮差速驱动小车_汽车的差速器、差速锁有什么不同?很多车主容易把它俩搞混...
- php安装完后 apache the requested has,Apache启动报错:the requested operation has failed
- DeepFake技术--DeepFake克星来了,简单两步算法造假图像无处可逃
- 持续交付——不仅仅是技术
- java关键字与解释_Java关键字及作用解释
- aplay,arec,amix使用
- JavaWeb笔记——JSPThymeleaf
- 多人同时用一个linux主机,云服务器能否多人使用?
- FISCO-BCOS 及 WeBase 问题记录
- uni-app小程序基础知识速览(上)
- Java递归实现多级菜单
- 五天完成项目-《基于Linux环境下的Cortex A53的手势识别智能家居》-第四天
- 软件测试 | 测试开发 | 时间管理之四象限法则
- python测试开发django-122.bootstrap模态框(modal)学习
热门文章
- 生成对抗网络与图像分割
- python learning1.py
- 程序员资源系列(不断完善中)
- C++初学之 3. ASCII数值的应用(大小写变换)
- 返回相同宽度数字型字符串
- C# 读取Excel表格中的数据
- sklearn训练模型、保存模型文件(文本、pkl)、模型文件转换(pkl2onnx)以及模型可视化
- 2021李宏毅机器学习课程笔记——Auto Encoder
- html 将盒子固定浏览器,浏览器默认css样式表 css之左盒子固定,右盒子自适应的一种实现方式...
- Linux Shell编程笔记10 Shell数组的补充