继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第7天 Python办公自动化

ninjaes
关注TA
已关注
手记 23
粉丝 0
获赞 4

课程名称Python办公自动化

课程章节:第4章 xlsxwriter生成图表

课程讲师: 离岛



课程内容

 

chart=wb.add_chart({'type':'line'})    #折线图, 可以使用column表示柱状图
chart.set_title({'name':'第一季度销售统计'})    
#X Y 描述信息,这里也可以设置字体的样式
chart.set_x_axis({'name':'月份'})    
chart.set_y_axis({'name':'销售额'})    
#数据    
chart.add_series({    
'name':'预期销售额',    
'categories':'=newsheet!$A$5:$A$7',    
'values':['newsheet',4,1,6,1]    
})    
chart.add_series({    
'name':'实际销售额',    
'categories':'=newsheet!$A$5:$A$7',    
'values':['newsheet',4,2,6,2], #起始行,终止列。
'data_labels':{'value':True}  #显示柱状图上数据   
})    
sheet.insert_chart('A23',chart)#写入

最终的结果如下图


http://img3.mukewang.com/631f494700013d8309470421.jpg


http://img2.mukewang.com/631f49ca0001856a10410546.jpg

具体的实现步骤如下

http://img3.mukewang.com/631f49e50001d57210070534.jpg

前两个步骤,前两个章节已经表示学习到了,主要是第三个步骤, 其中smtplib模块已经在python2.X、 3.X合入该模块

import xlsxwriter    
import smtplib    
from email.mime.text import MIMEText    
from email.mime.multipart import MIMEMultipart    
from email.mime.application import MIMEApplication    
#1.读取    
data=xlrd.open_workbook('info.xlsx')    
classinfo=[]    
for sheet in data.sheets():    
    dict={'name':sheet.name,'avgsalary':0}#班级信息    
    sum=0 #存储薪资    
    for i in range(sheet.nrows):    
        if i>1:    
            sum+=float(sheet.cell(i,5).value) #得到薪资数据    
    dict['avgsalary']=sum/(sheet.nrows-2)    
    classinfo.append(dict)    
print(classinfo)    
#2.写入excle    
workbook=xlsxwriter.Workbook('newinfo.xlsx')    
sheet=workbook.add_worksheet()#创建工作表    
#写入班级数据    
nameinfo=[]    
salaryinfo=[]    
for item in classinfo:    
    nameinfo.append(item['name'])    
    salaryinfo.append(item['avgsalary'])    
sheet.write_column('A1',nameinfo)    
sheet.write_column('B1',salaryinfo)    
#写入图表    
chart=workbook.add_chart({'type':'column'})    
#标题    
chart.set_title({'name':'平均就业薪资'})    
#数据源    
chart.add_series({    
    'name':'班级',    
    'categories':'=Sheet1!$A$1:$A$3',    
    'values':'=Sheet1!$B$1:$B$3',    
})    
sheet.insert_chart('A7',chart)    
workbook.close()    
#3.发送邮件    
host_server='smtp.qq.com' #主机地址,需要先打开邮箱内的smtp开关,初次打开时会提供授权码,乳腺   
#发件人邮箱    
sender="XXXXXXX" #使用个人邮箱即可  
#发件人邮箱密码、授权码    
code="xxxxxx"    
#收件人    
user1="XXXXXXXXXX"    
#准备邮件数据    
#邮件标题    
mail_title="!!!1月份平均就业薪资"    
#内容    
mail_content="1月份平均就业薪资,请具体查看附件"    
#构建附件    
attachment=MIMEApplication(open('newinfo.xlsx','rb').read())
#添加标识,最后是邮箱里看到的附件名字
attachment.add_header('Content-Disposition','attachment',filename='data.xlsx')   
#SMTP    
smtp=smtplib.SMTP(host_server)    
#登录    
smtp.login(sender,code)    
#发送    
msg=MIMEMultipart()#带附件的实例    
msg['Subject']=mail_title    
msg['From']=sender    
msg['To']=user1    
msg.attach(MIMEText(mail_content))    
msg.attach(attachment)    
smtp.sendmail(sender,user1,msg.as_string())

需要注意导入的email.mime是smtplib的拓展,可以设置文本和添加附件


保证SMTP处于开启状态,第一次开启会要求用户发送指定的短信给指定地方,到时候会返回一个授权码

http://img3.mukewang.com/631f52830001267a10620117.jpg


课程收获

本节内容主要是邮箱的发送过程中,各种参数的构建和使用,其中涉及到SMTP的内容,需要进行学习和熟悉的。



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP