微信小程序> Python绘制excel表格到邮件正文区并发送脚本实例-excel制作预约表格-会议室预定小程序

Python绘制excel表格到邮件正文区并发送脚本实例-excel制作预约表格-会议室预定小程序

浏览量:1472 时间: 来源:Rinzer
#-*-coding:utf-8-*-#程序名称:自动化缺陷报告脚本#程序描述:实现从本地路径读取excel文件内容,并绘制HTML表格,将内容写入邮件正文区发送#编写时间:2014.11.29-2014.12.4#作者:刘琳泽#解释环境:Windows7家庭高级版Python2.7.8IDLE#引入excel文档相关库importxlrdimportos,time#引入邮件相关库importsmtplibfromemail.mime.textimportMIMETextfromemail.headerimportHeaderimportbase64#处理从excel中读取的float类型数据的类#目前集成两种处理:(1)float到int型的转换(2)float到str型的转换,后续有需要可以增加方法以集成其他类型的转换classjudgeFloat:deffloatToInt(self,variable):variable"%d"%variablereturnvariabledeffloatToStr(self,variable):variablexlrd.xldate_as_tuple(variable,0)variablelist(variable)ifvariable[1]10:variable[1]'0'+str(variable[1])variablestr(variable[0])+str(variable[1])+str(variable[2])returnvariable#确定文档是否修改的函数:获取文档的修改时间与本地时间对比,不一致要求用户确认是否继续执行,一致则直接执行defopenFile(filename,address):filetimetime.strftime("%Y/%m/%d",time.localtime(os.stat(address+filename).st_mtime))localtime.strftime("%Y/%m/%d",time.localtime())iffiletime!local:singleinput("文档今天还没有修改过,请确认是否继续?确认请输入1后点击回车,否则输入2点击回车。")ifsingle1:passelifsingle2:exit()else:print'您的输入有误!脚本即将结束。'time.sleep(5)exit()else:pass#写邮件的函数defmailWrite(filename,address):header'htmlheadmetahttp-equiv"Content-Type"content"text/html;charsetutf-8"//head'th'bodytext"#000000"committed缺陷详情:tableborder"1"cellspacing"0"cellpadding"3"bordercolor"#000000"width"1800"align"left"trbgcolor"#F79646"align"left"th标识/thth摘要/thth状态/thth优先级/thth严重性/thth标记/thth所有者/thth创建时间/thth修改时间/th/tr'#打开文件filepathaddress+filenamebookxlrd.open_workbook(filepath)sheetbook.sheet_by_index(0)#获取行列的数目,并以此为范围遍历获取单元数据nrowssheet.nrows-1ncolssheet.ncolsbody''cellData1foriinrange(1,nrows+1):td''forjinrange(ncols):#读取单元格数据,赋给cellData变量供写入HTML表格中cellDatasheet.cell_value(i,j)#调用浮点型转换方法解决读取的日期内容为浮点型数据的问题ifisinstance(cellData,float):ifj0andi0:cellDataNewjudgeFloat()cellDatacellDataNew.floatToInt(cellData)else:cellDataNewjudgeFloat()cellDatacellDataNew.floatToStr(cellData)else:passtip'td'+cellData+'/td'#并入tr标签tdtd+tiptr'tr'+td+'/tr'#为解决字符串拼接问题增设语句,tr从excel中读取出来是unicode编码,转换成UTF-8编码即可拼接trtr.encode('utf-8')#并入body标签bodybody+trtail'/table/body/html'#将内容拼接成完整的HTML文档mailheader+th+body+tailreturnmail#发送邮件defmailSend(mail):#设置发件人sender'***'#设置接收人receiver'***@***.com'#设置邮件主题subject'测试邮件,请忽略!'#设置发件服务器,即smtp服务器smtpserver'smtp.***.net'#设置登陆名称username'***@***.net'#设置登陆密码password'******'#实例化写邮件到正文区,邮件正文区需要以HTML文档形式写入msgMIMEText(mail,'html','utf-8')#输入主题msg['Subject']subject#调用邮件发送方法,需配合导入邮件相关模块smtpsmtplib.SMTP()#设置连接发件服务器smtp.connect('smtp.***.net')#输入用户名,密码,登陆服务器smtp.login(username,password)#发送邮件smtp.sendmail(sender,receiver,msg.as_string())#退出登陆并关闭与发件服务器的连接smtp.quit()#入口函数,配置文件地址和文件名defmain():filename'Sheet1.xlsx'address'd:/defectManage/'openFile(filename,address)mailmailWrite(filename,address)mailSend(mail)#调用执行main函数if__name__"__main__":main()

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎