1.本文介绍

这是一个很好的Python自动化的案例。对于小公司,采用手动方式一个个发送邮件还是可以的。如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了。鉴于此,我写了一个这样的程序,实现Python自动化群发工资条的功能

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

原始数据源如下:

最终效果如下:

看到这里,你肯定也觉得很好玩儿吧?那么这样一个自动化程序,应该怎么做呢?接着往下看。

2.流程分析

其实这样一个代码,总结下来,就只有如下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.active
print(sheet)
-------------------------------------------------------
for row in sheet:row_text = ""for cell in row:if cell.column == "B":continuerow_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个参数:第一个参数是收件人的邮箱;第二个参数是邮件的标题;第三个参数是发送的内容。

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":continuerow_text += f"<td>{cell.value}</td>"row_text += "</tr>"print("\n")print(row_text)

结果如下:

4.完整代码

为了文章的完整性,我在文章最后放上我的代码。但是限于文章篇幅,最后我只粘贴一张图片,详细代码,大家可以去文末获取

我帮公司财务写了个“群发工资条”的Python脚本!相关推荐

  1. 我帮公司财务写了个“群发工资条”的Python脚本

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个 ...

  2. python 解除excel的密码_我帮公司财务写了个“群发工资条”的Python脚本!

    1.本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了.鉴于此, ...

  3. 我帮公司财务写了个“群发工资条”的 Python 脚本!

    来源 | 数据分析与统计学之美 本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮 ...

  4. python对财务人员的帮助-帮公司财务妹子写了个“群发工资条”的Python脚本!

    hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...

  5. python发微信工资条_帮公司财务妹子写了个“群发工资条”的Python脚本!

    hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...

  6. 用Python 给财务写了个“群发工资条”,效果不错

    作者 | 黄伟呢 来源 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 本文介绍 这是一个很好的 Python 自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一 ...

  7. 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~

    导语 小编以前经常把下载的东西放在桌面或者"下载"文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档. 不知道你是 ...

  8. python计算工资编程-当财务部的人会编程,会发生什么?Python实现自动化群发工资条...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于数据分析与统计学之美 ,作者黄伟呢 PS:如有需要Pytho ...

  9. python 工资条_当财务部的人会编程,会发生什么?Python实现自动化群发工资条...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于数据分析与统计学之美 ,作者黄伟呢 PS:如有需要Pytho ...

最新文章

  1. pth大小为0,占用空间不为0
  2. 【深度学习】一文看懂 (Transfer Learning)迁移学习(pytorch实现)
  3. Visual Studio Code 开发 .NET Core 看这篇就够了
  4. 在Linux上按大小列出文件和目录
  5. Vue第二部分(5):编程式的路由导航和实战案例
  6. Java基础学习总结(88)——线程创建与终止、互斥、通信、本地变量
  7. 收藏的一个关于C# ToString的方法集合
  8. RICOH 身份证 便捷打印
  9. 金蝶移动bos开发教程_金蝶bos
  10. 360众测靶场云文件服务器,360 政企安全官网_帮助应对高级威胁攻击
  11. von-ui组件库文档
  12. android渠道首发规则,酷传推广标准手册-android渠道首发规则.doc
  13. nmap工具进行端口扫描
  14. 知乎android客户端drawer布局探究
  15. 公众号、小程序、短信消息推送的区别
  16. windows下制作linux U盘启动盘或者安装优盘(转)
  17. 各种进制数之间的转换
  18. iphone7 买不买???
  19. direct show
  20. php-fpm端口占用无法启动

热门文章

  1. python-循环的入门
  2. python-数据容器-有序容器与无序容器
  3. 使用pt-query-digest时遇到报错can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5
  4. 神舟电脑冲击创业板失败 首发未获证监会通过
  5. chrome浏览器允许跨域
  6. [置顶]别羡慕别人的舒服,静下心来坚持奋斗!!!
  7. centos6/7 yum安装mysql客户端和rpm包方式安装方式
  8. 玉置成実(Nami Tamaki) -《もしも愿いが…》单曲[MP3]
  9. 今天成功的将一个对1,000,000条记录的查询从30'提升到1'以下,庆祝一下
  10. 容器编排技术 -- Kubernetes kubectl create service nodeport 命令详解