python实现自动化办公邮件合并功能
作者:穆穆Max 发布时间:2022-02-22 21:06:06
经常使用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文档。
简简单单的几行代码就可以完成邮件合并功能,如果有几千份数据源,当然,稍微修改下代码,就可以在几秒钟完成邮件合并,岂不乐哉?
来源:https://blog.csdn.net/weixin_52134263/article/details/118557089


猜你喜欢
- if (context.Request.UserAgent.ToLower().IndexOf(&qu
- 一、语法错误异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里二、异常处理while True: t
- 前言许久之前用 Mirai 搭建了 QQ 机器人,不过因为云服务器到期了,QQ 机器人被 迫下线,现如今,可能是意犹未尽,今天就基于 go-
- W3C终于发布了第一个HTML5草案,大家还沉溺在HTML2XHTML转换的快乐和痛苦中时,却又突然发现,HTML5和XHTML2,到底谁是
- Python是很好的爬虫工具不用再说了,它可以满足我们爬取网络内容的需求,那最简单的爬取网络上的图片,可以通过很简单的方法实现。只需导入正则
- module Main whereimport Network.Socketimport Control.Concurrentmain ::
- pytorch设置随机种子pytorch设置随机种子 - 保证复现模型所有的训练过程在使用 PyTorch 时,如果希望通过设置随机数种子,
- 一、图像缩略图的编辑图像的缩略图是指把图像按原比例缩小,可作为原图的预览,这在网络速度比较慢时可快速地显示图片的概图。当你的网页上有大型图片
- 一、前言1.1.环境python版本:3.6Django版本:1.11.61.2.预览效果最终搭建的blog的样子,基本上满足需求了。框架搭
- 在ASP中,如何创建DSN? 见下:<HTML><HEAD><META&n
- 本文实例讲述了php实现统计二进制中1的个数算法。分享给大家供大家参考,具体如下:问题输入一个十进制整数,输出该数二进制表示中1的个数。其中
- 只做简单地记录,方便一下使用!python关于csv模块的介绍网上有很多资料,这里就不在赘诉。直接给出代码和解释。数据:Symbol,Pri
- 前两天看见有人问静态网页加密问题,就写了这个代码稍微有些长,解释一下思路:加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得
- 一,mnist数据集形如上图的数字手写体就是mnist数据集。二,GAN原理(生成对抗网络)GAN网络一共由两部分组成:一个是伪造器(Gen
- 之前的表单验证都是用js写的,这里也可以使用tp框架的验证。但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度
- python中最基本的数据类型如下:Number(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典)
- 如果我们知道一个静态文件的实际路径如:https://www.aspxhome.com/download/cidianwang.pdf,如果
- hello,小伙伴们大家好,今天给大家介绍的开源项目是Python虚拟环境管理工具,Pipenv是Python官方推荐的包管理工具。可以说,
- 直线检测原理核心要点:图像坐标空间、参数空间、极坐标参数空间 -> (极坐标)参数空间表决给定一个点,我们一般会写成y=ax+b的形式
- 本文实例讲述了Python图像处理模块ndimage用法。分享给大家供大家参考,具体如下:一 原始图像1 代码from scipy impo