python实现自动化办公邮件合并功能

 更新时间:2021年07月08日 11:39:43   作者:穆穆Max  
这篇文章主要介绍了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实现自动化办公邮件合并功能的文章就介绍到这了,更多相关python邮件合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用py2exe打包程序介绍

    Python使用py2exe打包程序介绍

    这篇文章主要介绍了Python使用py2exe打包程序介绍,本文讲解了py2exe简介、安装、用法、指定额外文件等内容,需要的朋友可以参考下
    2014-11-11
  • Python字典中的值为列表或字典的构造实例

    Python字典中的值为列表或字典的构造实例

    今天小编就为大家分享一篇Python字典中的值为列表或字典的构造实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 如何使用pandas读取txt文件中指定的列(有无标题)

    如何使用pandas读取txt文件中指定的列(有无标题)

    这篇文章主要介绍了如何使用pandas读取txt文件中指定的列(有无标题),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • pandas map(),apply(),applymap()区别解析

    pandas map(),apply(),applymap()区别解析

    这篇文章主要介绍了pandas map(),apply(),applymap()区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Django实现从数据库中获取到的数据转换为dict

    Django实现从数据库中获取到的数据转换为dict

    这篇文章主要介绍了Django实现从数据库中获取到的数据转换为dict,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Django JSONField的自动转换思路详解(django自定义模型字段)

    Django JSONField的自动转换思路详解(django自定义模型字段)

    如果想实现JSONField的自动转换,可以使用Django REST framework的JSONField,或者自定义一个字段类并覆盖from_db_value()和get_prep_value()方法来实现这个功能,这篇文章主要介绍了Django JSONField的自动转换(django自定义模型字段)问题,需要的朋友可以参考下
    2023-06-06
  • python使用pandas实现数据分割实例代码

    python使用pandas实现数据分割实例代码

    这篇文章主要介绍了python使用pandas实现数据分割实例代码,介绍了使用pandas实现对dataframe格式的数据分割成时间跨度相等的数据块,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python使用celery实现异步任务执行的例子

    python使用celery实现异步任务执行的例子

    今天小编就为大家分享一篇python使用celery实现异步任务执行的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 基于PyQT5制作英雄联盟全皮肤下载器

    基于PyQT5制作英雄联盟全皮肤下载器

    这篇文章主要介绍了基于PyQt5制作的简易英雄联盟全皮肤下载器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手尝试一下
    2022-02-02
  • 开始着手第一个Django项目

    开始着手第一个Django项目

    这篇文章主要介绍了开始着手第一个Django项目的过程,Django是丰富多彩的Python框架中人气最高的一个,功能多而全,需要的朋友可以参考下
    2015-07-07

最新评论