python 怎么把excel写到邮件里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 怎么把excel写到邮件里相关的知识,希望对你有一定的参考价值。

参考技术A import xlrd
import os,time

#引入邮件相关库
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import base64

#处理从excel中读取的float类型数据的类
#目前集成两种处理:(1)float到int型的转换(2)float到str型的转换,后续有需要可以增加方法以集成其他类型的转换
class judgeFloat:
def floatToInt(self,variable):
variable="%d"%variable
return variable
def floatToStr(self,variable):
variable=xlrd.xldate_as_tuple(variable,0)
variable=list(variable)
if variable[1]<10:
variable[1]='0'+str(variable[1])
variable=str(variable[0])+str(variable[1])+str(variable[2])
return variable

#确定文档是否修改的函数:获取文档的修改时间与本地时间对比,不一致要求用户确认是否继续执行,一致则直接执行
def openFile(filename,address):
filetime=time.strftime("%Y/%m/%d",time.localtime(os.stat(address+filename).st_mtime))
local=time.strftime("%Y/%m/%d",time.localtime())
if filetime!=local:
single=input("文档今天还没有修改过,请确认是否继续?确认请输入1后点击回车,否则输入2点击回车。")
if single==1:
pass
elif single==2:
exit()
else:
print '您的输入有误!脚本即将结束。'
time.sleep(5)
exit()
else:
pass

#写邮件的函数
def mailWrite(filename,address):
header='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>'
th='<body text="#000000">committed缺陷详情:<table border="1" cellspacing="0" cellpadding="3" bordercolor="#000000" width="1800" align="left" ><tr bgcolor="#F79646" align="left" ><th>标识</th><th>摘要</th><th>状态</th><th>优先级</th><th>严重性</th><th>标记</th><th>所有者</th><th>创建时间</th><th>修改时间</th></tr>'
#打开文件
filepath=address+filename
book=xlrd.open_workbook(filepath)
sheet=book.sheet_by_index(0)
#获取行列的数目,并以此为范围遍历获取单元数据
nrows = sheet.nrows-1
ncols = sheet.ncols
body=''
cellData=1
for i in range(1,nrows+1):
td=''
for j in range(ncols):

#读取单元格数据,赋给cellData变量供写入HTML表格中
cellData=sheet.cell_value(i,j)
#调用浮点型转换方法解决读取的日期内容为浮点型数据的问题

if isinstance(cellData,float):
if j==0 and i>0:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToInt(cellData)
else:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToStr(cellData)
else:
pass
tip='<td>'+cellData+'</td>'
#并入tr标签
td=td+tip
tr='<tr>'+td+'</tr>'
#为解决字符串拼接问题增设语句,tr从excel中读取出来是unicode编码,转换成UTF-8编码即可拼接
tr=tr.encode('utf-8')
#并入body标签
body=body+tr
tail='</table></body></html>'
#将内容拼接成完整的HTML文档
mail=header+th+body+tail
return mail
#发送邮件
def mailSend(mail):
#设置发件人
sender = '***'
#设置接收人
receiver = '***@***.com'
#设置邮件主题
subject = '测试邮件,请忽略!'
#设置发件服务器,即smtp服务器
smtpserver = 'smtp.***.net'
#设置登陆名称
username = '***@***.net'
#设置登陆密码
password = '******'
#实例化写邮件到正文区,邮件正文区需要以HTML文档形式写入
msg = MIMEText(mail,'html','utf-8')
#输入主题
msg['Subject'] = subject
#调用邮件发送方法,需配合导入邮件相关模块
smtp = smtplib.SMTP()
#设置连接发件服务器
smtp.connect('smtp.***.net')
#输入用户名,密码,登陆服务器
smtp.login(username, password)
#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
#退出登陆并关闭与发件服务器的连接
smtp.quit()
#入口函数,配置文件地址和文件名
def main():
filename='Sheet1.xlsx'
address='d:/defectManage/'
openFile(filename,address)
mail=mailWrite(filename,address)
mailSend(mail)

#调用执行main函数
if __name__=="__main__":
main()

怎么样才能快速把Excel的表格转为Word呢?

Excel转Word,肯定要用到合并单元格这个神器。我原来还想用Python自动处理呢。根本用不着。
那些办公自动化的都是伪需求,自己搞搞就好了。
两种方法:①直接在Excel里合并单元格,就能Excel转Word ,②把Excel复制到腾讯Word在线文档中,合并单元格,就能Excel转Word
技术图片
把Excel的表格复制到腾讯在线文档的Word里,然后在Word中合并单元格
技术图片
技术图片
技术图片
技术图片

迅速就能转为Word了,超级方便。

技术图片

如果直接在Excel里合并单元格,也可以。

腾讯文档转换结果如下??

发射模式(TM)中,下面哪一项的说法是正确的()
D
TM2(TM1)为单天线端口传输,主要应用于单天线传输的场景
TM3发送分集模式,适合于小区边缘信道情况比较复杂的场景
TM4适合外场高速移动的场景
TM5 MU-MIMO传输模式主要用来提高小区的容量
TM7的应用场景是()
C
主要应用于单天线传输的场合
主要用来提高小区的容量
单流Beamforing,主要针对小区边缘,能够有效对抗干扰
适合于小区边缘信道情况比较复杂,干扰较大的情况,有时候也用于高速的情况
发射模式(TM)中,下面哪一项的说法是错误的()
D
TM1是单天线端口传输:主要应用于单天线传输的场合
TM2适合于小区边缘信道情况比较复杂,干扰较大的情况,有时候也用于高速的情况
TM3是大延迟分集:合适于终端(UE)高速移动的情况
TM4是Rank1的传输:主要适合于小区边缘的情况
E-UTRAN支持在多个小区间的移动和切换,系统在()的高速场景下能够实现较高的性能。
D
0~15km/h
500Km/h
120~350km/h
15~120km/h
发射模式(TM)中,下面哪一项的说法是正确的()
C
TM3常用于室分的场合
TM3需要8通道智能天线才能实现
TM7?能提高终端在小区边缘的表现
TM4?适合与外场高速移动的场合
同频小区重选参数cellReselectionPriority通过哪条系统消息广播()
B
系统消息1
系统消息3
系统消息5
系统消息2

技术图片
Excel合并单元格转换结果如下
技术图片

也是一样的














































以上是关于python 怎么把excel写到邮件里的主要内容,如果未能解决你的问题,请参考以下文章

要把excel表格中的内容截图到邮件中怎么弄?

要把excel表格中的内容截图到邮件中怎么弄?

Python3 实现简易ping监控并发送报警邮件

我在excel的表格里面只要点击那个表格就会出现一个outlook邮件对话框上怎么回事啊

excel发邮件问题

EXCEL VBA 自动发送邮件功能异常