这里我先使用pandas处理拆分excel,然后可以利用yagmail自动将拆分的表格发送给对应的人员.
这里分为两个文件,一个是主文件
另一个是sendm_email.py
import pandas as pd
import os
from send_email import send_email
excel_name = input('请输入excel文件路径,需要包含文件名:')
#读入
data = pd.read_excel(excel_name)
names = {
'头部T1':'XXX@qq.com',
'头部T2':'XXX@qq.com',
'腰部':'XXX@qq.com',
'尾部':'XXX@qq.com',
'底部':'XXX@foxmail.com',
}
dirname = 'exceldir'
if not os.path.exists(dirname):
os.makedirs(dirname)
for name,email in names.items():
df = data.loc[data['门店标识'] == name]
filepath = os.path.join(dirname, f'{name}.xlsx')
writer = pd.ExcelWriter(filepath)
df.to_excel(writer,'Sheet1')
writer.save()
if email:
send_email(name,email,filepath)
以上内容将表格内的门店标识项目作为循环的对照列,取头部T1等5个对应的内容进行迭代保存为另一份xlsx表格.保存好,最后使用send_email模块
import yagmail
def send_email(name,to,filepath):
contents = f'''
{name}你好,以下为您所在地区所需的表格,请查阅邮件的附件...
腾讯邮箱附件的名称可能会乱码,请无视...
'''
yag = yagmail.SMTP(
user = 'xxxx@foxmail.com',
password = 'Xzhtestdfgfghadfg',
host = 'smtp.qq.com'
)
yag.send(to = to,subject = '拆分表格',contents=contents,attachments=filepath)
print('邮件发送完成!')
附件名称会乱码,在QQ邮箱中确实存在,可是发送给163邮箱的时候附件名称又不会乱码,其实并不影响阅读,只是乱码的标题看起来很不舒服