用PY批量生成邮件草稿-办公重复劳动减少

本文介绍了一个Python程序,用Py做可视化窗口(用于批量生成邮件草稿), 窗口可以选择对应的文件路径存放所生成的文件夹,选择指定路径下的excel提取excel的每一列的内容,供应商名称作为每个邮件的首行,供应商邮箱作为邮件发送地址,对应供应商要降价的数字,当前供应商的联系人,在可视化窗口里面编辑对应的文字,将文字中的%%%替换成刚才描述的供应商的联系人,将文字中的¥¥¥替换成刚才描述的数字,点击生成即可生成Outlook里面的新草稿邮件等待发送。


import os
import PySimpleGUI as sg
import openpyxl
import win32com.client as win32

# 定义窗口布局
layout = [
    [sg.Text('请选择存放生成文件夹的路径')],
    [sg.InputText(key='-FOLDER-', size=(40, 1)), sg.FolderBrowse()],
    [sg.Text('请选择Excel文件')],
    [sg.InputText(key='-FILE-', size=(40, 1)), sg.FileBrowse(file_types=(("Excel Files", "*.xlsx"),))],
    [sg.Button('读取Excel'), sg.Button('一键提取'), sg.Button('生成邮件'), sg.Button('退出')],
    [sg.Multiline(size=(80, 10), key='-OUTPUT-', disabled=True)],
    [sg.Text('编辑邮件内容:')],
    [sg.Multiline(size=(80, 15), key='-EMAIL_CONTENT-')],
]

window = sg.Window('APP-007_Auto Email Editing  ---AUTHOR: DIETER', layout)

# 存储提取的数据
suppliers_data = []

while True:
    event, values = window.read()
    if event in (None, '退出'):
        break

    # 读取文件路径
    file_path = values['-FILE-']

    # 检查是否选择了文件
    if not file_path or not os.path.exists(file_path):
        sg.popup_error('请先选择正确的文件路径')
        continue

    try:
        # 打开Excel并读取数据
        wb = openpyxl.load_workbook(file_path)
        sheet = wb.active
        data = list(sheet.values)

        # 提取数据
        suppliers_data = list(zip(*data))  # 获取所有列信息
        output = f"总共有{len(suppliers_data[0])}条记录。\n"  
        for i, supplier in enumerate(zip(*suppliers_data)):
            name, email, discount, contact, phone = supplier
            output += f"{i + 1}. 供应商名称: {name}, 邮箱: {email}, 降价金额: ¥{discount}, 联系人: {contact}, 联系电话: {phone}\n"

        window['-OUTPUT-'].update(output)

    except Exception as e:
        sg.popup_error(f"发生错误: {str(e)}")
        window['-OUTPUT-'].update(f"发生错误: {str(e)}")

    if event == '一键提取':
        if not suppliers_data:
            sg.popup_error('请先读取Excel文件')
            continue

        # 提取行数并显示
        num_rows = len(suppliers_data[0])  
        sg.popup(f"总共有 {num_rows} 条记录。")

    if event == '生成邮件':
        if not suppliers_data:
            sg.popup_error('请先读取Excel文件')
            continue

        # 获取邮件内容
        email_template = values['-EMAIL_CONTENT-']
        outlook = win32.Dispatch('outlook.application')

        for supplier in zip(*suppliers_data):
            name, email, discount, contact, phone = supplier
            # 替换占位符
            email_content = email_template.replace('%%%', contact).replace('¥¥¥', str(discount))

            # 创建新邮件草稿
            mail = outlook.CreateItem(0)
            mail.To = email
            mail.Subject = f"{name} 的降价通知"
            mail.Body = email_content
            mail.Display()  # 显示邮件草稿

        sg.popup("邮件草稿已生成,等待发送。")

window.close()

我已经制作成了APP,并且基于此代码做了升级和更新,  没有python的电脑上面都可以操作,小程序

价格:20RMB/个(通用型),需要的留言。;

非通用型价格另算,可做数据定制处理等脚本开发,需要的留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dieter.ding

祝老板码来财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值