python自动生成表格_Python自动生成绩效考核表并发送邮件

相信大家经常在工作中见到一些数据报告,比如周报啊,月报啊,绩效考核表之类的数据表格,这些表格每个月我们都需要发送给固定的人,比如领导,对于这些报告,有的需要手工导入数据,而有的其实都是一些固定数据,所以我就针对相对固定的数据来进行分析,如何让程序自动生成绩效考核表并发送邮件给领导。项目思路如下(列表页无法查看flowchart,详情页正常):

首先利用python的openpyxl库获取表格内容,然后同样适用该库对数据进行修改,修改日期为当前日期。修改好之后保存一份;然后利用email库发送带有附件的邮件,最后再利用电脑或者服务器的定时任务执行当前脚本即可。下面是源码:

获取表格/修改数据

利用openpyxl.load_workbook函数导入表格,然后读取sheet。利用cell函数修改指定行的内容,比如下方我修改了第2行,第8列的数据,将日期修改成了当前日期,然后最后保存到了本地。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18# _*_ coding:utf-8 _*_

import openpyxl

import time

import smtplib

from email.mime.text import MIMEText

from email.header import Header

from email.utils import formataddr

from email.mime.multipart import MIMEMultipart

# 通过openpyxl与time库修改绩效表中日期为当前时间

def write_excel():

# 读取excel

wb = openpyxl.load_workbook('jixiaokaohe.xlsx')

worksheet = wb['sheet名称']

# 修改指定行数据并保存到本地

worksheet.cell(2, 8, str(time.strftime('%Y.%m.%d', time.localtime())))

wb.save(filename='jixiaokaohe.xlsx')

发送邮件1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42# 发送邮件

def send_email():

from_addr = 'email@domain.com'

password = 'thisispassword'

to_addr = 'receive@domain.com'

smtp_server = 'smtp.exmail.qq.com'

# 创建一个带附件的实例

msg = MIMEMultipart()

msg['From'] = Header("发送者名称", 'utf-8')

msg['To'] = Header("接受者名称", 'utf-8')

subject = '邮件标题'

msg['Subject'] = Header(subject, 'utf-8')

# 邮件正文内容

msg.attach(MIMEText("你好:

详情见附件!

", 'html', 'utf-8'))

# 构造附件1

att1 = MIMEText(open('jixiaokaohe.xlsx', 'rb').read(), 'base64', 'utf-8')

# 这里的filename可以任意写,写什么名字,邮件中显示什么名字

att1["Content-Disposition"] = 'attachment; filename="jixiaokaohe.xlsx"'

msg.attach(att1)

# 服务端配置,账密登陆

server = smtplib.SMTP(smtp_server, 25)

# 登陆服务器

server.login(from_addr, password)

try:

server.sendmail(from_addr, [to_addr], msg.as_string()) # 发送地址需与登陆的邮箱一致

print("邮件发送成功!")

server.quit()

except smtplib.SMTPException:

print("Error: 无法发送邮件")

def start():

write_excel()

send_email()

start()

到这里为止,脚本就写完了,写起来很简单,最后一步就是找个合适的时候执行这个脚本,没有服务器的,可以用自己本机电脑做一个定时计划任务,然后定时执行该脚本即可。

st=>start: 开始

e=>end: 结束

op1=>operation: 获取表格

op2=>operation: 修改表格

op3=>operation: 发送邮件

st->op1(right)->op2(right)->op3->e{"theme":"simple","scale":1,"line-width":2,"line-length":50,"text-margin":10,"font-size":12}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用多种库生成表格和插入图表,并通过电子邮件发送。下面是一个基本的步骤指南: 1. 生成表格:可以使用pandas库创建一个数据框(DataFrame)来表示表格。DataFrame提供了强大的功能,可以轻松地创建、编辑和操作数据表。使用pandas的to_csv()方法,可以将数据框保存为CSV文件,以备后续使用。 2. 插入图表:可以使用matplotlib库创建各种类型的图表。Matplotlib提供了丰富的绘图函数和样式选项,可以根据需要创建直方图、折线图、散点图等不同类型的图表。在生成图表后,可以使用matplotlib的savefig()方法将图表保存为文件,以备后续使用。 3. 发送邮件:可以使用smtplib库来连接邮箱服务器,并使用MIME(多用途互联网邮件扩展)库来创建和发送电子邮件。首先,需要使用smtplib库中的SMTP类来连接你的邮箱服务器,然后使用MIME库中的MIMEMultipart类来创建邮件主体。可以通过MIMEMultipart对象的attach()方法,将之前保存的表格和图表文件添加为附件。最后,使用SMTP类的sendmail()方法,指定发件人、收件人和邮件内容,发送邮件。 注意:在使用以上功能之前,需要安装相应的库。可以使用pip命令来安装pandas、matplotlib和smtplib库。 总之,使用Python生成表格并插入图表,然后通过发送邮件来分享这些结果,可以帮助我们更好地处理和共享数据分析的结果。这在许多领域中都非常有用,包括商业、科学研究和数据处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值