用python实现自动化办公------邮件合并

用python实现自动化办公------邮件合并

经常使用word办公的小伙伴们经常会遇到邮件合并的任务,通常会将数量有限的表格中的信息通过word的邮件合并功能,自动生成word文档,操作熟练的技术员通常不到十分钟就可以合并几十份邮件。那么如果遇到成千上万份的邮件需要合并并且需要各自生成文件呢?一个excel大佬也需要很长时间吧!既然我们很难在excel上追上大佬的脚步,何不另辟蹊径,找一条更适合自己的方法呢?
我是一年多前接触到python自动化办公的,通过进一步的学习,发现平时我们的办公效率可以通过使用python的自动化办公方法从而进一步提升,而且这种提升是很容易就可以实现的。如果你花了不到一个月的时间学习了简单的自动化办公技巧,那么我可以想象得到,某一天会真实发生的一种情景:在公司做报表的那一天,其他同事都在慌里慌张的敲打着键盘,到了下班点之后,他们不仅没有回家感受家的温暖,还要遭受老板的冷眼,任务没有完成是不能回家的,即使有多晚。那么这个时候,你早已经保质保量的完成了所有任务,在其它同事手忙脚乱的时候,你在悠闲的喝着咖啡,沐浴在领导今天对你的赞美之中,默默感叹,生活如此多娇,下班后去干嘛呢?,
下面随我一起走进python自动化办公的第一站:邮件合并。
如果word模板文件长这个样子(为了演示自动化办公效果,邀请函是随意写的):
邀请函
当然,对于到进行邮件合并的位置,我们同样和word邮件合并一样,需要添加域。
邀请函有了,那么表格哪里找呢!对于初学者来说,对于这种实例性很强的项目,没有数据,可以宣布50%已经放弃了。那么,在以后的学习过程中,没有数据,当然我们要自己创造数据。如下代码所示,我们可以创建有name、mail、date的csv文件来,并且实现邮件合并的功能。

import pandas as pd
import numpy as np
import random
import csv
from mailmerge import MailMerge
#生成姓名
def create_fname_data():
    word_select = []
    for i in range(97, 123):
        word_select.append(chr(i))
    print(word_select)
    name_select = []
    for i in range(6):
        name = ''
        for i in range(5):
            name += random.choice(word_select)
        name+=' '
        for i in range(5):
            name += random.choice(word_select)
        name_select.append(name.title())
    print(name_select)
    return name_select

#生成邮箱
def create_mail():
    word_select=[str(i) for i in range(9)]
    all_number_select=[]
    for i in range(6):
        number_select=''
        for i in range(10):
            number_select+=random.choice(word_select)
        endwith=['@163.com','@qq.com','@icloud.com']
        number_select+=random.choice(endwith)
        all_number_select.append(number_select)
    return all_number_select

#创建csv文件
def add_csv():
    df=pd.DataFrame(
        {
            'name':pd.Series(create_fname_data()),
            'date':pd.Series(pd.date_range('20210101',periods=6)),
            "mail":pd.Series(create_mail()),
        }
    )
    print(df)
    df.to_csv('./data/random_data.csv')

if __name__ == '__main__':
    add_csv()
    with open('./data/random_data.csv',encoding='utf-8') as f:#邮件合并数据目录位置
        reader=csv.reader(f)
        next(reader)
        for index,name,date,mail in reader:
            doc=MailMerge('./data/test1.docx')#模板文件目录
            print(name,mail,date)
            doc.merge(name=name,mail=mail,date=date)#邮件合并
            doc.write(f'./data/{name}.docx')#写入文件

下图是自动生成的word文档。
在这里插入图片描述
简简单单的几行代码就可以完成邮件合并功能,如果有几千份数据源,当然,稍微修改下代码,就可以在几秒钟完成邮件合并,岂不乐哉?
如果对我的文章感兴趣,请为我点一个赞,如果有python的知识需要了解或探讨,可以加本人微信cuiliang1666457052

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

穆穆Max

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值