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

作者:穆穆Max 时间:2022-02-22 21:06:06 

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

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

当然,对于到进行邮件合并的位置,我们同样和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实现自动化办公邮件合并功能

简简单单的几行代码就可以完成邮件合并功能,如果有几千份数据源,当然,稍微修改下代码,就可以在几秒钟完成邮件合并,岂不乐哉?

来源:https://blog.csdn.net/weixin_52134263/article/details/118557089

标签:python,邮件合并,自动化办公
0
投稿

猜你喜欢

  • python数据操作之lambda表达式详情

    2022-08-19 21:21:32
  • python GUI编程实现扫雷游戏

    2023-10-27 20:41:29
  • Python Pyperclip模块安装和使用详解

    2023-06-25 13:52:11
  • Python+微信接口实现运维报警

    2022-06-12 23:40:30
  • 根据表中数据生成insert语句的存储过程

    2008-11-10 12:13:00
  • Python实现将Excel转换为json的方法示例

    2023-10-13 00:59:38
  • C#查询SqlServer数据库并返回单个值的方法

    2024-01-24 08:05:52
  • 用Python实现插值算法

    2021-07-16 11:01:22
  • 网站构成的基本元素—网页布局

    2008-01-04 09:49:00
  • JSP实现登录功能之添加验证码

    2023-07-16 12:18:09
  • python结合多线程爬取英雄联盟皮肤(原理分析)

    2023-05-31 21:49:37
  • Python利用正则表达式匹配并截取指定子串及去重的方法

    2021-05-07 00:37:20
  • 编写和优化SQL Server的存储过程

    2009-04-13 10:13:00
  • Win10搭建Pyspark2.4.4+Pycharm开发环境的图文教程(亲测)

    2021-03-21 02:07:59
  • 对Python 窗体(tkinter)树状数据(Treeview)详解

    2022-12-04 12:58:49
  • DreamweaverMX Ultradev探索:技巧荟萃

    2010-07-13 12:10:00
  • Python实现识别手写数字 Python图片读入与处理

    2022-07-14 17:48:10
  • Anaconda环境变量的配置图文详解

    2021-09-11 04:50:26
  • javascript代码实现简易计算器

    2024-04-16 08:57:46
  • Python 对象序列化与反序列化之pickle json详细解析

    2021-09-06 23:44:06
  • asp之家 网络编程 m.aspxhome.com