精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Py自動化辦公-Word文檔替換、Excel表格讀取、Pdf文件生成和Email自動郵件發送實戰案例

開發 前端 自動化
想象一下,現在你有一份Word邀請函模板,然后你有一份客戶列表,上面有客戶的姓名、聯系方式、郵箱等基本信息,然后你的老板現在需要替換邀請函模板中的姓名,然后將Word邀請函模板生成Pdf格式,之后編輯統一的邀請話術(郵件正文),再依次發送邀請函附件到客戶郵箱,你會怎么做?

[[440244]]

前言

前幾天在學習【麥叔】的《Python辦公效率手冊》一書,受益匪淺,原來Python自動化辦公這么有趣,目前學完了前面四章,將四章內容串起來,整理成一篇小文章,分享給大家。當然了,這里的展示只是冰山一角,更多精彩內容還是要到原文中去汲取。

背景

想象一下,現在你有一份Word邀請函模板,然后你有一份客戶列表,上面有客戶的姓名、聯系方式、郵箱等基本信息,然后你的老板現在需要替換邀請函模板中的姓名,然后將Word邀請函模板生成Pdf格式,之后編輯統一的邀請話術(郵件正文),再依次發送邀請函附件到客戶郵箱,你會怎么做?

正常情況下,我們肯定是復制粘貼Excel表格中的客戶姓名,之后挨個Word文檔進行替換,之后將Word轉Pdf格式,然后復制Excel表格中的郵箱進行發送編輯好的郵件正常,之后附上邀請函附件,點擊發送,大概算一下,激情高昂的狀態下,這個流程快的話,大概需要1分鐘甚至更多。如果客戶只有幾十個就還好,一個小時就可以搞定,如果客戶有幾百個,上千個,甚至上萬個呢?那估計要哭暈在辦公室了。

不過別慌,Python自動化辦公,一套組合拳,使用Python自動化辦公——Word文檔替換、Excel表格讀取、Pdf文件生成和Email自動郵件發送一條龍服務安排,下面一起來看看吧!

實現過程

1)替換Word模板生成對應邀請函

這里以上面的Word模板做案例,編寫一個函數以客戶姓名進行替換模板中的,一步到位。

  1. def get_invitation(name): 
  2.     doc = docx.Document("template.docx"
  3.     for para in doc.paragraphs: 
  4.         if '<name>' in para.text: 
  5.             for run in para.runs: 
  6.                 if '<name>' in run.text: 
  7.                     run.text = run.text.replace('<name>'name
  8.         doc.save(f'./邀請函/{name}.docx'

上面這個代碼需要理解Word文檔的結構,一個文檔有多個段落,用doc.paragraphs獲取;段落中的文字用para.text獲取;一個段落中可能有多個不同樣式的文本,這些不同的樣式被稱為run,一個段落中包含多個run,用para.runs獲取,一個run中的具體文本用run.text獲取。了解了這些,再看上述代碼,是不是清晰很多呢?

2)將Word邀請函轉化為Pdf格式

這個就簡單很多了,Python自動化辦公中,一行代碼就可以實現,而且速度還十分快。

  1. from docx2pdf import convert 
  2. convert(f"./邀請函/{name}.docx"

使用convert()函數可以把docx格式的文件轉換成同名的Pdf文檔。

3)讀取Excel表格中的姓名和郵箱

這里需要用到openpyxl庫了,當然關于Excel的庫還是很多的,這里以這個庫作為示例,代碼如下:

  1. def get_username_email(): 
  2.     workbook = openpyxl.load_workbook("names.xlsx"
  3.     worksheet = workbook.active 
  4.     for index, row in enumerate(worksheet.rows): 
  5.         if index > 0: 
  6.             name = row[0].value  # 獲取表格第一列的姓名 
  7.             email = row[3].value  # 獲取表格第四列的郵箱 
  8.             # print(name, email) 
  9.             # print(f"{name}邀請函正在生成..."
  10.             # get_invitation(name
  11.             send_email(name, email) 

上面的代碼,理解起來應該并不難,讀取Excel中的姓名和郵箱,之后傳到get_invitation()生成邀請函,之后傳給send_email()函數中自動發送郵件。實際上,這兩部是分開進行的,這里是先執行get_invitation()函數,先生成邀請函,之后再將該函數注釋掉,再執行發送郵件函數,

4)自動發送郵件

關于自動發送郵件,歷史文章中也曾經發布過好幾篇了,這里繼續用上了,一開始我也覺得挺難的,后來發現也沒有想的那么復雜,代碼如下:

  1. smtp = smtplib.SMTP(host="smtp.qq.com", port=587) 
  2. # smtp.login(郵箱, 授權碼) 
  3. smtp.login('235977@qq.com'"ruybefkipoo"
  4.  
  5.  
  6. def send_email(name, email): 
  7.     msg = MIMEMultipart() 
  8.     msg["subject"] = f"您好,{name},您的邀請函!" 
  9.     msg["from"] = "2352180977@qq.com" 
  10.     msg["to"] = email 
  11.  
  12.     html_content = f""
  13.     <html> 
  14.         <body> 
  15.                 <p>您好:{name}<br> 
  16.                     <b>歡迎加入Python進階者學習交流群,請在附件中查收您的門票~</b><br> 
  17.                     點擊這里了解更多:<a href="https://www.pdcfighting.com">演唱會主頁</a> 
  18.                 </p> 
  19.         </body> 
  20.     </html> 
  21.     ""
  22.     html_part = MIMEText(html_content, "html"
  23.     msg.attach(html_part) 
  24.     with open(f"./邀請函/{name}.pdf""rb"as f: 
  25.         doc_part = MIMEApplication(f.read()) 
  26.         doc_part.add_header("Content-Disposition""attachment", filename=name
  27.         # 把附件添加到郵件中 
  28.         msg.attach(doc_part) 
  29.         # 發送前面準備好的郵件 
  30.         smtp.send_message(msg) 
  31.         # 如果放到外邊登錄,這里就不用退出服務器連接,所以注釋掉了 
  32.         # smtp.quit() 

這里需要注意三點,其一是郵箱登錄放在了函數外邊,防止函數多次調用,短時間多次請求登錄郵箱被封禁;其二郵箱登錄里邊用的是授權碼,而不是你的郵箱登錄密碼,這里使用的是qq郵箱做示例,其他郵箱需要更改smtp服務;其三這個代碼里邊除了正文中引用了html寫法,還攜帶了Pdf格式的邀請函附件,稍顯復雜。關于授權碼的獲取,這里不再贅述了,之前歷史文章頁寫過,網上的教程頁很多,不會的話,私我就行。

5)完整代碼

以上四個步驟進行拆分了,依次完成了Word文檔替換、Excel表格讀取、Pdf文件生成和Email自動郵件發送任務,這里附上完整的代碼。

  1. import docx 
  2. from docx2pdf import convert 
  3. import openpyxl 
  4. import smtplib 
  5. from email.mime.text import MIMEText 
  6. from email.mime.multipart import MIMEMultipart 
  7. from email.mime.application import MIMEApplication 
  8.  
  9.  
  10. # 生成對應的邀請函,并轉存pdf格式 
  11. def get_invitation(name): 
  12.     doc = docx.Document("template.docx"
  13.     for para in doc.paragraphs: 
  14.         if '<name>' in para.text: 
  15.             for run in para.runs: 
  16.                 if '<name>' in run.text: 
  17.                     run.text = run.text.replace('<name>'name
  18.         doc.save(f'./邀請函/{name}.docx'
  19.     convert(f"./邀請函/{name}.docx"
  20.  
  21.  
  22. smtp = smtplib.SMTP(host="smtp.qq.com", port=587) 
  23. smtp.login('235977@qq.com'"ruybefkipoo"
  24.  
  25.  
  26. def send_email(name, email): 
  27.     msg = MIMEMultipart() 
  28.     msg["subject"] = f"您好,{name},您的邀請函!" 
  29.     msg["from"] = "2352180977@qq.com" 
  30.     msg["to"] = email 
  31.  
  32.     html_content = f""
  33.     <html> 
  34.         <body> 
  35.                 <p>您好:{name}<br> 
  36.                     <b>歡迎加入Python進階者學習交流群,請在附件中查收您的門票~</b><br> 
  37.                     點擊這里了解更多:<a href="https://www.pdcfighting.com">演唱會主頁</a> 
  38.                 </p> 
  39.         </body> 
  40.     </html> 
  41.     ""
  42.     html_part = MIMEText(html_content, "html"
  43.     msg.attach(html_part) 
  44.     with open(f"./邀請函/{name}.pdf""rb"as f: 
  45.         doc_part = MIMEApplication(f.read()) 
  46.         doc_part.add_header("Content-Disposition""attachment", filename=name
  47.         # 把附件添加到郵件中 
  48.         msg.attach(doc_part) 
  49.         # 發送前面準備好的郵件 
  50.         smtp.send_message(msg) 
  51.         # 如果放到外邊登錄,這里就不用退出服務器連接,所以注釋掉了 
  52.         # smtp.quit() 
  53.  
  54.  
  55. def get_username_email(): 
  56.     workbook = openpyxl.load_workbook("names.xlsx"
  57.     worksheet = workbook.active 
  58.     for index, row in enumerate(worksheet.rows): 
  59.         if index > 0: 
  60.             name = row[0].value 
  61.             email = row[3].value 
  62.             # print(name, email) 
  63.             # print(f"{name}邀請函正在生成..."
  64.             # get_invitation(name
  65.             send_email(name, email) 
  66.  
  67.  
  68. if __name__ == '__main__'
  69.     get_username_email() 
  70.     # get_invitation('Python進階者'

總結

這篇文章基于Python自動化辦公,主要介紹了使用Python相關庫,依次完成Word文檔替換、Excel表格讀取、Pdf文件生成和Email自動郵件發送任務。程序運行之后,邀請函會自動生成,然后郵件會自動發送,速度也非常快,給幾百個、上千個客戶發送邀請函就不害怕了,如果有上萬個客戶,可能需要借助第三方平臺輔助了,畢竟一般的普通郵箱,每日發送郵箱數是有限制的。

本文轉載自微信公眾號「Python爬蟲與數據挖掘」,可以通過以下二維碼關注。轉載本文請聯系Python爬蟲與數據挖掘公眾號。

 

責任編輯:武曉燕 來源: Python爬蟲與數據挖掘
相關推薦

2021-12-28 09:24:49

Python郵件Word

2022-03-21 10:09:08

PythonExcel郵件

2025-11-10 09:14:26

PythonExcel自動化

2023-11-20 22:07:51

PythonPDF

2024-09-25 10:00:00

Python自動化辦公

2020-04-21 10:45:47

PythonWordExcel

2021-04-17 23:10:59

Python微軟Word

2022-07-05 08:26:10

Python報表自動化郵箱

2021-02-01 11:03:36

Python開發郵件

2020-11-05 12:56:19

Python辦公自動化

2022-06-13 09:12:04

PythonPDF代碼

2024-11-11 16:55:54

2024-05-29 11:16:33

PythonExcel

2021-07-09 07:24:47

Python自動化辦公

2025-04-23 08:15:00

2020-01-16 09:00:00

AI人工智能ML

2021-03-12 08:56:10

Java組件

2017-12-17 21:58:18

2023-10-18 13:57:17

2014-06-26 09:23:34

點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲国产一区| 乱人伦精品视频在线观看| 色国产综合视频| 欧美日韩在线精品一区二区三区| 国产www在线| 国产一区三区在线播放| 欧美亚男人的天堂| 中文字幕久精品免| 国产av无码专区亚洲av| 校园春色亚洲| 久久九九久久九九| 91免费欧美精品| 日操夜操天天操| 999精品视频| 日韩精品视频免费专区在线播放| 天天操天天干天天做| 性欧美xxx69hd高清| 亚洲欧美日韩国产一区二区三区| 久久久一本精品99久久精品66| 中文字幕在线日亚洲9| 亚洲精品美女91| 日韩中文字幕在线免费观看| 国产精品无码一区二区三区免费 | 亚洲激情中文| 亚洲最新在线视频| 免费视频一区| 欧美激情综合在线| 99久久精品免费看国产一区二区三区| 成熟人妻av无码专区| 午夜在线观看视频18| 久久se精品一区二区| a在线欧美一区| 97精品国产aⅴ7777| 国产三级国产精品国产国在线观看| 亚洲成aⅴ人片久久青草影院| 日韩视频一区二区三区| 亚洲欧美国产中文| 成人啊v在线| 婷婷丁香久久五月婷婷| 黄色片免费在线观看视频| 日本三级在线视频| 欧美激情一区二区三区不卡 | 一区二区的视频| 日韩精品1区2区3区| 欧美亚洲第一区| 国产午夜精品一区二区理论影院| 一区二区中文| 欧美成人精品在线观看| 永久免费看片视频教学| 日韩大片在线播放| 中文字幕亚洲综合久久| 极品蜜桃臀肥臀-x88av| 欧美在线观看视频一区| 国产一区二区三区高清在线观看| 丰满少妇一区二区| 国产精品羞羞答答在线观看| 国产亚洲成av人片在线观看桃| 国产精品无码久久久久久| 亚洲国产最新| 国产一区二区三区欧美| 国产99在线 | 亚洲| 久久资源中文字幕| 久久久av一区| 久久免费播放视频| 9国产精品视频| 欧洲一区二区视频| 高潮无码精品色欲av午夜福利| 日韩精品五月天| 国产精品日韩精品| 国产又粗又猛又黄又爽| 国产激情精品久久久第一区二区| 超碰97在线资源| 神马精品久久| www.欧美.com| 欧美日韩系列| 免费av在线网址| 亚洲国产精品一区二区久久恐怖片 | 黄色aaaaaa| 91精品国产自产在线丝袜啪 | 国产麻豆剧传媒精品国产av| 日本一道高清一区二区三区| 亚洲日本中文字幕| 97在线观看视频免费| 好吊日精品视频| 欧洲精品在线视频| 国产剧情精品在线| 99久久婷婷国产| 亚洲日本欧美在线| 男女在线视频| 在线观看三级视频欧美| 性欧美在线视频| 国产精品久久久久久久久久白浆| 亚洲天堂av在线免费| 欧美成人免费观看视频| 另类av一区二区| 91免费国产网站| 五月婷婷六月色| 国产精品久久久久天堂| 国产九色porny| 成人黄色免费网站| 555夜色666亚洲国产免| 亚洲一区二区三区四区五区六区| 日韩一区二区在线免费| 77777亚洲午夜久久多人| 在线观看免费高清视频| 99麻豆久久久国产精品免费优播| 特级西西444www大精品视频| 免费在线国产视频| 欧美日韩一区二区三区高清| 国产艳妇疯狂做爰视频| 日韩系列欧美系列| 欧美一区二三区| 国产免费一区二区三区最新不卡 | 久久免费视频99| 麻豆精品新av中文字幕| 精品欧美国产| 青春草在线免费视频| 欧美日本一区二区三区四区| 尤物视频最新网址| 亚洲黄页一区| 91精品网站| 男人资源在线播放| 在线视频国产一区| 麻豆国产精品一区| 红桃视频国产精品| 51国偷自产一区二区三区| 91女主播在线观看| 色狠狠av一区二区三区| 极品粉嫩小仙女高潮喷水久久| 国内综合精品午夜久久资源| 亚洲自拍小视频免费观看| eeuss影院在线播放| 一本大道综合伊人精品热热| 少妇一级淫片免费放播放| 这里只有精品在线| 亚洲xxxxx性| 久热国产在线| 欧美一区二区视频免费观看| 亚洲 欧美 国产 另类| 免费人成黄页网站在线一区二区| 欧美日韩精品免费观看视一区二区| 成人爽a毛片免费啪啪动漫| 日韩一级片网址| 永久免费看黄网站| 成人在线综合网站| 又大又硬又爽免费视频| 51社区在线成人免费视频| 欧美另类69精品久久久久9999| 999久久久久| 亚洲精品久久久久久国产精华液| 无套白嫩进入乌克兰美女| 香蕉视频官网在线观看日本一区二区| 国产乱人伦真实精品视频| 91成人高清| 欧美精品久久99久久在免费线 | 黄色网址在线免费观看| 欧美高清视频www夜色资源网| 国产美女免费无遮挡| 久久一区二区三区超碰国产精品| 欧美一区二区三区四区五区六区 | 国产精品加勒比| аⅴ资源天堂资源库在线| 日韩精品亚洲元码| 男人天堂视频网| 国产精品污www在线观看| 911av视频| 精品成人久久| 欧美尤物一区| 亚洲精品成人一区| 欧美老肥婆性猛交视频| 婷婷五月综合激情| 在线视频国产一区| 久久国产高清视频| 丁香亚洲综合激情啪啪综合| 欧洲黄色一级视频| 四季av在线一区二区三区| 91免费版黄色| 成人直播视频| 日韩最新av在线| 精品人妻一区二区三区换脸明星| 亚洲风情在线资源站| www.色天使| 极品少妇xxxx偷拍精品少妇| 日韩精品久久一区二区| 免费视频亚洲| 亚洲综合社区网| 少妇视频一区| xx视频.9999.com| 手机av免费在线观看| 在线免费不卡电影| 免费毛片在线播放免费| 久久久久久久久蜜桃| www.成年人| 国产一区二区三区成人欧美日韩在线观看 | 777午夜精品福利在线观看| 午夜视频成人| 亚洲国产精品久久| 91福利在线观看视频| 性久久久久久久| 欧美自拍偷拍网| 99精品在线观看视频| 中文字幕一区二区在线观看视频 | 伊人久久婷婷| 亚洲精品久久久久久一区二区| 国产一区二区三区亚洲| 国产美女久久久| 欧美片第一页| 久久久久久久久91| 成人区精品一区二区不卡| 亚洲欧美日韩天堂| 少妇荡乳情欲办公室456视频| 777午夜精品视频在线播放| 国产精品久久久久久久久久久久久久久久久| 国产精品国产三级国产| 精品无码国产污污污免费网站| 高清shemale亚洲人妖| 岛国av免费在线| 久久免费黄色| 日韩a∨精品日韩在线观看| 欧美国产专区| 992tv成人免费观看| 黄色不卡一区| 欧美精品亚洲精品| 久久久久高潮毛片免费全部播放| 91超碰在线电影| 伊人久久综合网另类网站| 国产精品video| 亚洲妇女成熟| 7m精品福利视频导航| 大桥未久在线播放| 欧美精品久久久久久久久久| 在线中文字幕第一页| 久久久999国产| 国产日产一区二区| 日日噜噜噜夜夜爽亚洲精品| √天堂资源地址在线官网| 亚洲最新在线视频| 国产乱理伦片a级在线观看| 亚洲人成网站777色婷婷| 你懂的好爽在线观看| 亚洲免费电影一区| 色吊丝在线永久观看最新版本| 亚洲精品ady| 欧美成熟毛茸茸| 亚洲精品一区二区在线| 日本亚洲一区| 国产亚洲精品成人av久久ww| 成人亚洲综合天堂| 自拍偷拍免费精品| 黄色免费在线看| 久久99精品视频一区97| 免费电影视频在线看| 久久免费少妇高潮久久精品99| 51漫画成人app入口| 午夜精品一区二区三区av| 天堂中文在线播放| 国产精品2018| 日韩国产大片| 91最新在线免费观看| 日韩精品免费视频一区二区三区| 超碰97在线人人| 蜜桃久久久久| 欧美资源一区| 99久久99久久精品国产片桃花| 中文字幕第50页| 狠狠爱成人网| 国产综合免费视频| 奇米影视在线99精品| 九色91porny| av成人动漫在线观看| 精品国产成人亚洲午夜福利| 亚洲欧洲日韩在线| 国产无码精品在线观看| 色综合中文综合网| 国产一区二区三区视频免费观看| 欧美一区二区三区色| 天堂网在线资源| 中文字幕一精品亚洲无线一区| 午夜激情在线| 欧洲美女免费图片一区| 57pao成人永久免费| 国产自产在线视频一区| 精品国产中文字幕第一页| 日本精品福利视频| 男女精品视频| 国产传媒免费观看| 91美女片黄在线| 北条麻妃在线观看视频| 亚洲国产成人精品视频| 91麻豆精品在线| 欧美精品一区二区三区在线| 精品视频一二区| 色综合导航网站| 成人午夜精品| 91传媒视频免费| 精品理论电影| 久无码久无码av无码| 久久成人羞羞网站| 国产乱了高清露脸对白| 亚洲人成电影网站色mp4| 亚洲天堂视频网站| 精品福利二区三区| 日本黄色片在线观看| 热99久久精品| 一区视频网站| 在线视频一区观看| 日韩一区精品视频| 人妻无码中文久久久久专区| 亚洲女与黑人做爰| 在线免费观看一级片| 国产丝袜一区视频在线观看| 日日夜夜天天综合入口| 国产欧洲精品视频| 少妇精品久久久一区二区| 草b视频在线观看| 国产精品18久久久久久vr| 国产精品视频在| 在线观看日韩一区| 色视频在线观看| 97在线视频免费看| 99re8这里有精品热视频8在线| 亚洲精品偷拍视频| 麻豆精品精品国产自在97香蕉| www.狠狠爱| 色一情一伦一子一伦一区| 天天操天天射天天| 久久免费少妇高潮久久精品99| 视频精品二区| 欧美少妇一区二区三区| 精品一区二区在线免费观看| 天堂av网手机版| 欧美日韩午夜在线| 99re在线视频| 国产精品久久一区主播| 国产一区二区亚洲| 91香蕉视频污版| 国产日韩精品一区二区浪潮av | 欧美日韩一区二区三区在线观看免| 亚洲东热激情| 亚洲国产果冻传媒av在线观看| 天天av天天翘天天综合网 | 国产精品sm调教免费专区| 亚洲精品影视在线观看| 中文字幕高清在线播放| 欧美国产一区二区在线| 久久久噜噜噜| 制服 丝袜 综合 日韩 欧美| 91传媒视频在线播放| 国产鲁鲁视频在线观看免费| 国产成人一区二区三区| 欧美丝袜一区| 想看黄色一级片| 一区二区三区日韩精品视频| 亚洲国产成人精品一区二区三区| 色综合色综合久久综合频道88| 亚洲一区二区三区中文字幕在线观看 | 欧美日韩高清一区二区三区| 超鹏97在线| 国产精品我不卡| 免费一级欧美片在线播放| 丁香激情五月少妇| 欧美一级在线视频| 97人澡人人添人人爽欧美| 久久久久久久免费| 日韩成人一级大片| 成人高潮免费视频| 精品国产乱码久久久久久图片 | 激情成人亚洲| 法国伦理少妇愉情| 欧美日韩一区久久| 亚洲色图美国十次| 久久综合狠狠综合久久综青草 | 无码国产精品一区二区免费式直播 | 91免费精品国偷自产在线在线| 国产 福利 在线| 国产精品久久久久一区二区三区共 | 麻豆视频在线观看免费网站黄| 日本一区免费看| 国产乱人伦偷精品视频不卡| 日本一区二区网站| 中文字幕久热精品在线视频| 成人h动漫精品一区二区器材| 久久精品视频91| 一区二区三区四区不卡视频| 欧美日韩在线精品一区二区三区激情综| 国产精品第一页在线| 欧美精品福利| 99久久久久久久久久| 宅男在线国产精品| segui88久久综合9999| 亚洲国产一区二区三区在线播| 国产91在线观看丝袜| 亚洲视频一区在线播放| 久久免费精品日本久久中文字幕| 日韩av片子| 99久久久久久久久久| 精品久久久久av影院 | 一本久久知道综合久久| 成年人免费视频播放| 亚洲免费av网址|