精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

九九在线精品| 中文字幕资源网在线观看免费| 狠狠久久亚洲欧美| 欧美激情在线观看视频| 国产不卡一区二区在线观看| 日韩大片免费在线观看| 精品一区欧美| 91精品国产免费| 日本最新一区二区三区视频观看| 日韩久久久久久久久久| 亚洲午夜在线| 国产亚洲精品久久久久久| 手机av在线网站| 午夜久久中文| 亚洲精品欧美专区| 日韩欧美一区二区视频在线播放 | 欧美综合一区| 亚洲第一综合色| 欧美亚洲免费高清在线观看| 欧美成人短视频| 波多野结衣一区二区三区免费视频| 色综合一区二区三区| 国产女人18毛片| 国产主播福利在线| 亚洲免费网站| 欧美尺度大的性做爰视频| 欧美性xxxx图片| 香蕉免费一区二区三区在线观看| 在线观看日韩精品| 日本一区免费看| 99在线观看免费| 日韩av电影天堂| 91精品国产高清| 免费视频一二三区| 91久久久精品国产| 国产亚洲精品久久久久久777| 亚洲精品激情视频| 精品国产一区二| 亚洲人成精品久久久久久| 欧美最大成人综合网| 欧美一级视频免费| 国产精品香蕉一区二区三区| 国产日产久久高清欧美一区| av毛片在线免费观看| 亚洲小说欧美另类社区| 久久综合88中文色鬼| 精品伦精品一区二区三区视频密桃 | 久久综合av| 中文日韩在线观看| 亚洲精品手机在线观看| 亚洲日本网址| 一本久久综合亚洲鲁鲁五月天| 国产真人做爰毛片视频直播| 丝袜在线观看| 亚洲已满18点击进入久久| 精品蜜桃传媒| 天堂av资源在线| 成人精品gif动图一区| 国产久一道中文一区| chinese国产精品| 在线综合视频| 青青青国产精品一区二区| 日本午夜视频在线观看| 亚洲自啪免费| 国产成人高潮免费观看精品| 日韩精品在线一区二区三区| 日本aⅴ亚洲精品中文乱码| 国产精品久久91| 在线观看中文字幕2021| 国产一区中文字幕| 国产aⅴ精品一区二区三区黄| 亚洲乱色熟女一区二区三区| 伊人色**天天综合婷婷| 久久精品电影网站| 欧美三根一起进三p| 亚洲一级影院| 日本一欧美一欧美一亚洲视频| av首页在线观看| 久久成人免费日本黄色| 91久色国产| 亚洲欧洲精品视频| 国产欧美日韩视频在线观看| 在线视频精品一区| 久久久123| 一本色道久久综合亚洲精品按摩| 视频二区在线播放| 一级毛片精品毛片| 亚洲人成电影在线播放| 中文字幕求饶的少妇| 亚洲视频久久| 国产精品国产三级国产aⅴ浪潮| 亚洲视频在线观看一区二区| 风流少妇一区二区| 国产精品视频免费在线观看| 国产视频一区二区三区四区五区| 成人永久免费视频| 日韩在线第一区| 欧洲在线视频| 日本高清不卡aⅴ免费网站| 91小视频在线播放| 亚洲伊人春色| 欧美另类99xxxxx| 福利网址在线观看| 国产精品99久久久久久久女警 | 污版视频在线观看| www.久久东京| 色爱精品视频一区| 国产又大又黑又粗免费视频| 精品一区二区三区在线播放视频| 精品乱色一区二区中文字幕| 久久黄色美女电影| 欧美性高潮在线| 91丨porny丨九色| 国产成人黄色| 国内精久久久久久久久久人| 亚洲影视一区二区| 久久精品水蜜桃av综合天堂| 吴梦梦av在线| 国产精品字幕| 精品无人区太爽高潮在线播放 | 岛国在线视频免费看| 亚洲一区二区在线免费观看视频| 国产wwwxx| 岳的好大精品一区二区三区| 欧美国产日韩一区二区在线观看 | 免费久久精品视频| 精品无码久久久久国产| 午夜成年人在线免费视频| 欧美又粗又大又爽| 国产精品伦子伦| 国产精品福利在线观看播放| 国产成人精品久久二区二区91| 天天av天天翘| 亚洲成a人片综合在线| 国产一级免费大片| 日韩人妻精品中文字幕| 美女精品一区二区| 欧美黑人3p| 97天天综合网| 日韩精品一区二区三区中文不卡| 999久久久国产| 热久久一区二区| 日本在线视频一区| 国精产品一区一区三区四川| 国产视频精品xxxx| 国产精品视频久久久久久久| 成人精品免费看| av在线com| 99久久人爽人人添人人澡| 欧美日本在线视频中文字字幕| 国产欧美一区二区三区视频在线观看| 国产精品免费视频观看| 国产系列第一页| 四虎影视成人精品国库在线观看| 丝袜一区二区三区| 91亚洲精品国偷拍自产在线观看| 国产精品天干天干在观线| 国产一线二线三线在线观看| 精品久久精品| 国产男人精品视频| 国产91在线视频蝌蚪| 欧美一区二区三区色| 黄页网站免费观看| 成人国产亚洲欧美成人综合网| 分分操这里只有精品| 欧美日韩一区二区三区在线电影| 青草青草久热精品视频在线网站 | 亚洲天堂日韩av| 99久久精品国产毛片| 成人在线免费在线观看| 91大神免费观看| 成人动漫视频在线观看免费| 国产精品毛片一区二区在线看舒淇 | 国产激情视频在线播放| 亚洲国产一区视频| 五月婷婷综合在线观看| 禁断一区二区三区在线| 国产精品久久一区| 国产美女在线观看| 精品久久人人做人人爱| 亚洲欧美综合另类| 国产精品美女久久久久高潮| a级大片免费看| 亚洲精品美女91| 91麻豆国产语对白在线观看| 污网站在线免费看| 亚洲第一在线视频| 午夜一区二区三区四区| 久草热在线观看| 国产精品亲子乱子伦xxxx裸| 超碰在线超碰在线| 午夜在线观看免费一区| 一区二区三区四区视频在线观看| 亚洲国产视频二区| 国产91色在线|| 97caopor国产在线视频| 亚洲美女中文字幕| h狠狠躁死你h高h| 欧美色欧美亚洲高清在线视频| 超碰人人人人人人人| 成人h动漫精品| 久久国产这里只有精品| 在线看片一区| 一区二区三区欧美在线| 欧美变态网站| 亚洲自拍小视频| 色香欲www7777综合网| 欧美日韩国产成人高清视频| 国产一级免费在线观看| 精品国产乱码久久久久久免费| 成人无码精品1区2区3区免费看 | 国产精品扒开腿做爽爽爽视频| 国产剧情在线| 亚洲欧美日本另类| 欧美自拍偷拍第一页| 在线不卡一区二区| 少妇视频一区二区| 国产亚洲制服色| 国产香蕉精品视频| 国产综合色视频| 黄色国产小视频| 成人羞羞网站入口免费| 国产精品亚洲一区| 91麻豆精品一二三区在线| 国产精品 欧美在线| av在线理伦电影| 美日韩精品免费观看视频| av在线播放网| 亚洲欧美日韩精品久久亚洲区| 日本黄色免费视频| 日韩免费一区二区三区在线播放| 亚洲性在线观看| 91成人免费在线| 无码人妻精品一区二区50| 精品人伦一区二区三区蜜桃免费| 激情四射综合网| 亚洲视频一区二区在线观看| 国产一区在线观看免费| 中文在线一区二区| 性欧美精品男男| 久久久久久日产精品| 国产精品揄拍100视频| 99久久久久久| 中文在线永久免费观看| 不卡的看片网站| 中国xxxx性xxxx产国| www.欧美.com| 欲求不满的岳中文字幕| caoporn国产一区二区| 中文字幕乱码在线| 99re成人在线| 草草影院第一页| 久久免费精品国产久精品久久久久| 国产三级视频网站| 91免费版在线看| 国产精品天天干| 中文字幕制服丝袜一区二区三区 | 高h震动喷水双性1v1| 日韩美女天天操| 免费观看毛片网站| 日韩久久精品成人| 理论视频在线| 欧美精品在线一区二区| 一级特黄aaa大片在线观看| 51精品视频一区二区三区| 精品国精品国产自在久不卡| 欧美第一区第二区| 五月婷婷在线播放| 亚洲色图综合久久| 黄色一级大片在线免费看产| 欧美国产日本高清在线| 少妇视频在线观看| 欧美猛交免费看| 国产精品探花在线| 91精品国产高清久久久久久久久| 男人皇宫亚洲男人2020| 国产精品自拍视频| 99热这里只有精品首页| 欧美视频小说| 国产精品毛片久久| 国产欧美日韩小视频| 久久久久久穴| 精品无码一区二区三区在线| 麻豆精品网站| 中文字幕精品一区二区三区在线| 国产成人亚洲综合a∨婷婷| 香蕉视频黄色在线观看| 国产精品日产欧美久久久久| 久久久无码精品亚洲国产| 欧美性猛交xxxx| 国产精品久久久久久免费播放| 欧美精品一区二区在线播放| av在线天堂| 97色在线观看免费视频| 全球最大av网站久久| 国产91aaa| 大片网站久久| 人妻久久久一区二区三区| 精品一区二区三区在线观看国产 | 国产欧美一区二区三区鸳鸯浴 | 最新热久久免费视频| 久久久久久久久久久久国产| 在线日韩一区二区| 丰满人妻妇伦又伦精品国产| 亚洲天堂av电影| 丁香花在线高清完整版视频| 国产日本欧美一区| 亚洲人成网亚洲欧洲无码| 亚洲高潮无码久久| 美国一区二区三区在线播放| 大黑人交xxx极品hd| 亚洲午夜av在线| 一区二区视频网站| 亚洲免费电影在线观看| eeuss鲁一区二区三区| 91精品久久久久久久久中文字幕| 精品国产乱子伦一区二区| 午夜啪啪福利视频| 日日夜夜精品视频天天综合网| 日韩少妇一区二区| 一区二区三区毛片| 激情综合网五月天| 欧美日韩视频在线一区二区| 91亚洲欧美激情| 亚洲日本中文字幕免费在线不卡| xxxx成人| julia一区二区中文久久94| 亚洲h色精品| 污版视频在线观看| 欧美国产一区在线| 在线观看亚洲黄色| 亚洲欧美日韩中文视频| 日韩伦理精品| 精品不卡在线| av成人毛片| 中文字幕影片免费在线观看| 亚洲综合一区二区三区| jlzzjlzzjlzz亚洲人| 久久久av电影| 韩国三级成人在线| 日韩视频在线观看视频| 久久99精品国产麻豆婷婷| 日韩精品久久久久久久的张开腿让| 日本高清成人免费播放| 国产三级视频在线看| 国产成人欧美在线观看| 亚洲肉体裸体xxxx137| 精品一卡二卡三卡| 国产三级一区二区三区| 中文字幕永久在线| 最新国产成人av网站网址麻豆| 成人国产精品一区二区免费麻豆| 亚洲电影一二三区| 精品中文字幕一区二区小辣椒| 天天操天天摸天天舔| 91精品国产综合久久小美女 | 97精品国产97久久久久久| 岛国精品一区| 日韩免费视频播放| 久久久久亚洲蜜桃| 亚洲av无码乱码国产精品fc2| 在线激情影院一区| 成人在线精品| 免费的一级黄色片| 99麻豆久久久国产精品免费优播| 97久久久久久久| 一色桃子一区二区| 国产精品久久久久久av公交车| 特级西西人体www高清大胆| 豆国产96在线|亚洲| 亚洲日本视频在线观看| 国产一区二区三区丝袜| 北岛玲精品视频在线观看| 污污污污污污www网站免费| 99久久777色| 国产精品无码粉嫩小泬| 久久夜色精品国产欧美乱| 国产精品对白久久久久粗| 免费大片在线观看| 中文字幕一区日韩精品欧美| 丰满人妻一区二区| 日韩暖暖在线视频| 2023国产精品久久久精品双| 无码国产精品一区二区免费式直播 | 精品999日本久久久影院| 国产高清www| 久久久精品tv| 精品人妻伦一二三区久久 | 久久久久久久久久久综合| 99久久国产综合精品麻豆| 亚洲精品国产精品乱码视色| 欧美激情视频一区二区三区不卡| 午夜精品福利影院| jizz18女人| 五月综合激情婷婷六月色窝| 五月婷婷在线视频| 久久综合入口| 国产一区二区在线影院| 国产91国语对白在线| 欧美大片欧美激情性色a∨久久|