这里我先使用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邮箱的时候附件名称又不会乱码,其实并不影响阅读,只是乱码的标题看起来很不舒服

最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏