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郵件合並內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: