for col in range(len(field)):
#因为第一行写了字段名称,所以要从第二行开始写入
_ = sheet.cell(row=row+2, column=col + 1, value=u'%s' % data[row][col])
#将生成的excel保存,这步是必不可少的
newworkbook = new.save(file)
#返回生成的excel
return newworkbook
### 04.处理日期数据
大部分的数据都是需要时间戳的,用Python操作时间可以用time,datatime这样的模块。里面有大量非常方便的函数。详见我的历史文章(都说Python时间处理很好玩还简单,真的吗)
def getYesterday():
获取昨天日期的字符串格式的函数
#获取今天的日期
today = datetime.date.today()
#获取一天的日期格式数据
oneday = datetime.timedelta(days=1)
#昨天等于今天减去一天
yesterday = today - oneday
#获取昨天日期的格式化字符串
yesterdaystr = yesterday.strftime(‘%Y-%m-%d’)
#返回昨天的字符串
return yesterdaystr
### 05.生成邮件
经过前面的几个步骤,我们的准备工作差不多了!该重头戏自动发送邮件出场了,编写一个发送邮件,无非这么几步:
**1).编写邮件内容**
def create_email(email_from, email_to, email_Subject, email_text, annex_path, annex_name):
输入发件人昵称、收件人昵称、主题,正文,附件地址,附件名称生成一封邮件
#生成一个空的带附件的邮件实例
message = MIMEMultipart()
#将正文以text的形式插入邮件中
message.attach(MIMEText(email_text, ‘plain’, ‘utf-8’))
#生成发件人名称(这个跟发送的邮件没有关系)
message[‘From’] = Header(email_from, ‘utf-8’)
#生成收件人名称(这个跟接收的邮件也没有关系)
message[‘To’] = Header(email_to, ‘utf-8’)
#生成邮件主题
message[‘Subject’] = Header(email_Subject, ‘utf-8’)
#读取附件的内容
att1 = MIMEText(open(annex_path, ‘rb’).read(), ‘base64’, ‘utf-8’)
att1[“Content-Type”] = ‘application/octet-stream’
#生成附件的名称
att1[“Content-Disposition”] = ‘attachment; filename=’ + annex_name
#将附件内容插入邮件中
message.attach(att1)
#返回邮件
return message
用email模块生成邮件的标题,内容,发件人和收件人。如果有附件的话,我们插入附件的文件。
**2).发送邮件**
准备好邮件的内容之后,我们用smtp模块链接上服务器,填入用户名和密码。当然一定要有异常处理,所以涉及到服务器的处理,都需要有异常处理!
def send_email(sender, password, receiver, msg):
一个输入邮箱、密码、收件人、邮件内容发送邮件的函数
try:
#找到你的发送邮箱的服务器地址,已加密的形式发送
server = smtplib.SMTP_SSL(“smtp.mxhichina.com”, 465) # 发件人邮箱中的SMTP服务器
server.ehlo()
#登录你的账号
server.login(sender, password) # 括号中对应的是发件人邮箱账号、邮箱密码
#发送邮件
server.sendmail(sender, receiver, msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号(是一个列表)、邮件内容
print(“邮件发送成功”)
server.quit() # 关闭连接
except Exception:
print(traceback.print_exc())
print(“邮件发送失败”)
### 06.大功告成,看一下效果
忙活了半天,总于可以看一下运行的效果了!输入一条sql查询语句,然后初始化一些邮件的标题,然后填入一堆运营部门,产品部门的邮件地址。然后倒杯咖啡,漂亮的按一下回车,欣赏自己的劳动成果!
def main():
my_sql = sql = “SELECT a.id ‘用户ID’,
a.gmtCreate ‘用户注册时间’,
af.lastLoginTime ‘最后登录时间’,
af.totalBuyCount ‘历史付款子单数’,
af.paidmountUSD ‘历史付款金额’,
af.lastPayTime ‘用户最后支付时间’
FROM table a
LEFT JOIN tableb af ON a.id= af.accountId ;”
生成数据
my_data = get_datas(my_sql)
生成字段名称
my_field = get_fields(my_sql)
得到昨天的日期
yesterdaystr = getYesterday()
文件名称
my_file_name = ‘user attribute’ + yesterdaystr + ‘.xlsx’
文件路径
file_path = ‘D:/work/report/’ + my_file_name
生成excel
get_excel(my_data, my_field, file_path)
my_email_from = ‘BI部门自动报表机器人’
my_email_to = ‘运营部’
邮件标题
my_email_Subject = ‘user’ + yesterdaystr
邮件正文
my_email_text = "Dear all,\n\t附件为每周数据,请查收!\n\nBI团队 "
#附件地址
my_annex_path = file_path
#附件名称
my_annex_name = my_file_name
生成邮件
my_msg = create_email(my_email_from, my_email_to, my_email_Subject,
my_email_text, my_annex_path, my_annex_name)
my_sender = ‘阿里云邮箱’
my_password = ‘我的密码’
my_receiver = [10001@qq.com’]#接收人邮箱列表
发送邮件
send_email(my_sender, my_password, my_receiver, my_msg)
if name == “main”:
main();
看一下效果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ea6e5ed4f2b1498e8f78c664194bc38c.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7bd59d0652784f5e9b1c4bb70e79544f.png)
### 最后:
**在学习python中有任何困难不懂的可以扫码微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。**
![](https://img-blog.csdnimg.cn/img_convert/f9578f3bf76d66422038c42679615477.png)
### 一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![在这里插入图片描述](https://img-blog.csdnimg.cn/a6067e55c54b49078778d56ea0db7fe2.png)
### 二、Python必备开发工具
![在这里插入图片描述](https://img-blog.csdnimg.cn/e496e6652efd47f5bbe73ad2ee082d4a.png)
### 三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c6ac9e53d20b448ab9f2837b7f173b94.png)
### 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。![在这里插入图片描述](https://img-blog.csdnimg.cn/7b7d7e133d984b85a09422c3ccfa7396.png)
### 五、Python练习题
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
### 一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
### 二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/8c4513c1a906b72cbf93031e6781512b.png)
### 三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
![](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)
### 四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/afc935d834c5452090670f48eda180e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56iL5bqP5aqb56eD56eD,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
### 五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
![](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)
### 六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![](https://img-blog.csdnimg.cn/img_convert/d2d978bb523c810abca3abe69e09bc1a.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**