本篇文章小编给大家分享一下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文档。
简简单单的几行代码就可以完成邮件合并功能,如果有几千份数据源,当然,稍微修改下代码,就可以在几秒钟完成邮件合并,岂不乐哉?