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

Python自動化辦公實戰:包含Word、Excel、Pdf和Email郵件案例

開發 后端 自動化
這篇文章基于Python自動化辦公,主要介紹了使用Python相關庫,依次完成Word文檔替換、Excel表格讀取、Pdf文件生成和Email自動郵件發送任務。

 [[442480]]

背景

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

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

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

實現過程

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

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

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

總結

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

 

 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2021-12-14 07:40:08

Excel自動化辦公

2022-03-21 10:09:08

PythonExcel郵件

2023-11-20 22:07:51

PythonPDF

2020-04-21 10:45:47

PythonWordExcel

2021-04-17 23:10:59

Python微軟Word

2020-11-05 12:56:19

Python辦公自動化

2025-11-10 09:14:26

PythonExcel自動化

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

2022-07-05 08:26:10

Python報表自動化郵箱

2024-09-25 10:00:00

Python自動化辦公

2023-10-18 13:57:17

2021-02-01 11:03:36

Python開發郵件

2024-05-13 16:29:56

Python自動化

2025-07-14 06:15:00

Python辦公自動化開發

2024-10-28 19:36:05

2020-05-25 14:32:42

Python電子郵件自動化
點贊
收藏

51CTO技術棧公眾號

亚洲视频在线一区| 经典一区二区| 一区二区三区波多野结衣在线观看 | 三级黄色片免费观看| 色呦呦在线看| 久久久精品国产免大香伊| 国产日韩在线精品av| 国产一级一片免费播放| 国产精品片aa在线观看| 91麻豆精品久久久久蜜臀| 青娱乐自拍偷拍| eeuss影院在线观看| 国产超碰在线一区| 国产精品久久国产精品99gif| 我家有个日本女人| 中文字幕精品影院| 日韩精品在线一区| 天堂在线资源视频| www.超碰在线| 亚洲私人影院在线观看| 欧美日韩一区二区三区在线观看免| 国产精品久久久久久久免费| 亚洲欧美日韩国产一区| 蜜臀久久99精品久久久久久宅男| 国内精品久久99人妻无码| 麻豆国产精品| 欧美日韩精品系列| 四虎永久在线精品无码视频| 国语对白在线刺激| 中文字幕在线观看一区二区| 欧美精品免费观看二区| 内射后入在线观看一区| 精品一区二区三区的国产在线播放| 奇米成人av国产一区二区三区| 欧美日韩免费做爰视频| 国产成人无码一二三区视频| 97视频精彩视频在线观看| 97久久超碰国产精品电影| 91视频国产精品| 五月激情丁香网| 国产精品久久久亚洲一区| 色综合视频网站| 欧美在线视频第一页| 日韩精品网站| 中文字幕亚洲国产| 日本激情小视频| 亚洲欧美tv| 亚洲精品成人久久电影| 在线xxxxx| 2023国产精华国产精品| 日韩视频一区在线观看| 99视频在线观看视频| 国产一二三四视频| 蜜桃av在线| 天天亚洲美女在线视频| 岛国大片在线播放| caoporn-草棚在线视频最| 一区二区久久久久| 青青草综合视频| 色婷婷在线播放| 夜夜精品浪潮av一区二区三区| 老司机午夜免费福利视频| 69成人在线| 亚洲国产精品人人做人人爽| 分分操这里只有精品| av手机在线观看| 欧美日韩亚洲天堂| 毛葺葺老太做受视频| **在线精品| 欧美美女bb生活片| 性生活在线视频| 极品束缚调教一区二区网站| 日韩va亚洲va欧洲va国产| 国产肉体xxxx裸体784大胆| 亚洲丝袜美腿一区| 中文字幕亚洲欧美日韩高清| 亚洲v.com| 久久久久久影视| 日韩欧美亚洲v片| av午夜在线| 日韩美女啊v在线免费观看| 欧美aaa在线观看| 日韩影视在线| 欧美日韩久久久久| 黄色一级免费大片| gogo大尺度成人免费视频| 日韩西西人体444www| 男女性杂交内射妇女bbwxz| 婷婷成人影院| 亚洲欧美中文字幕| 蜜桃av乱码一区二区三区| 天天做天天爱天天综合网2021| 欧美成人手机在线| 黄色在线观看国产| 久久99九九99精品| 国产一区在线免费观看| 超碰免费97在线观看| 亚洲精品视频在线看| 黄色免费福利视频| www.成人| 亚洲欧美一区二区精品久久久| 永久免费未视频| 宅男噜噜噜66国产日韩在线观看| 国产精品一区专区欧美日韩| 黄色aaa毛片| 国产精品亲子乱子伦xxxx裸| 男人天堂av片| 日韩久久99| 国产视频精品免费播放| 天天操天天操天天操天天操天天操| 国产偷自视频区视频一区二区| 国产欧美精品日韩精品| 亚洲色欧美另类| 日韩理论片网站| 欧美综合在线观看视频| 亚洲五码在线| 中文字幕亚洲天堂| 日韩电影免费观看在线观看| 在线观看免费av网址| 美女呻吟一区| 九色精品免费永久在线| 337p粉嫩色噜噜噜大肥臀| 成人一区二区三区视频在线观看| 日韩理论片在线观看| 阿v视频在线观看| 日韩欧美国产一区二区三区| 亚洲欧洲综合网| 视频一区二区三区入口| 国产一区二区精品免费| 国产在线1区| 欧洲av在线精品| 北岛玲一区二区| 亚洲午夜精品久久久久久app| 国产精品国语对白| 欧美女同网站| 精品日本高清在线播放| 中文字幕天堂av| 欧美久久九九| 亚洲japanese制服美女| 五月天婷婷在线视频| 色久综合一二码| 免费a级黄色片| 国产亚洲午夜| 久久久精彩视频| 91九色porn在线资源| 欧美大片在线观看一区二区| 搜索黄色一级片| 久久精品国产秦先生| 亚洲午夜精品久久久久久浪潮| 性欧美freesex顶级少妇| 亚洲成人a**站| 日韩欧美视频在线免费观看| 成人美女视频在线看| 精品久久久久久无码中文野结衣| 亚洲一级大片| 欧美劲爆第一页| 亚洲国产精品成人久久蜜臀| 亚洲综合一区二区| 手机免费看av片| 亚洲国产精品第一区二区| 国产精品一区二| 高清视频在线观看三级| 亚洲第一视频网站| 久久国产黄色片| 久久精品网站免费观看| 91激情视频在线| 欧美大人香蕉在线| 91麻豆桃色免费看| 色噜噜狠狠狠综合欧洲色8| 久久久蜜桃一区二区人| 欧美激情啊啊啊| 免费看av毛片| 色婷婷av久久久久久久| 天天舔天天操天天干| 精品一区二区在线观看| 老司机午夜免费福利视频| 欧美1区2区3区4区| 国产福利精品av综合导导航| 日本蜜桃在线观看| 日韩一区二区三区视频| 精品一区免费观看| 91在线观看免费视频| 天天色综合天天色| 亚洲一区 二区 三区| 国模精品一区二区三区| 欧美xnxx| 欧美高清性猛交| 欧美精品少妇| 777xxx欧美| 日本在线观看视频网站| 国产人成一区二区三区影院| 亚洲男人天堂av在线| aa级大片欧美三级| 亚洲高清乱码| 超碰在线成人| 国产精品xxxxx| 最新黄网在线观看| 亚洲精品自在久久| av老司机久久| 欧美日韩精品二区| 91嫩草丨国产丨精品| 91在线播放网址| www.国产福利| 免费精品视频| 免费看日b视频| 国产成人精品免费视| 99久久精品久久久久久ai换脸| 亚洲人体影院| 欧美大荫蒂xxx| 91xxx在线观看| 亚洲精品美女久久久久| 国产口爆吞精一区二区| 色综合天天综合色综合av | 中文字字幕在线观看| 亚洲午夜一区二区三区| 国产又粗又猛又爽又黄的视频小说| 懂色av噜噜一区二区三区av| 国产一伦一伦一伦| 亚洲永久免费| 日韩精品免费一区| 久久高清精品| 日韩电影免费观看高清完整| 巨人精品**| 99国产视频在线| 97久久中文字幕| 国产一区二区女| 午夜欧美性电影| 香蕉人人精品| 国产乱码精品一区二区三区卡| 亚洲伊人伊成久久人综合网| 日韩av电影在线免费播放| 美女精品导航| 操日韩av在线电影| 久久99精品久久久久久野外| 国产一区二区三区直播精品电影| 天天躁日日躁狠狠躁喷水| 日韩精品一区二区三区四区| 国产视频手机在线观看| 欧美片在线播放| 97成人在线观看| 欧美三级午夜理伦三级中视频| 精品无码一区二区三区的天堂| 精品久久久精品| 国产无遮挡又黄又爽| 一区二区三区在线播| 内射一区二区三区| 国产精品久久久久影院色老大| 非洲一级黄色片| 久久精品一区二区| 国产精品无码久久久久一区二区| 99亚偷拍自图区亚洲| 欲求不满的岳中文字幕| www.亚洲国产| 中文精品在线观看| 久久女同性恋中文字幕| 少妇真人直播免费视频| 久久综合色鬼综合色| 蜜桃无码一区二区三区| 国产网站一区二区三区| 九九热免费在线| 中文字幕一区二区不卡| 久久久久久久久久网站| 亚洲综合av网| 国产成人愉拍精品久久| 欧美日韩国产在线| 少妇太紧太爽又黄又硬又爽| 日本乱人伦aⅴ精品| 一区二区视频在线免费观看| 欧美精品亚洲一区二区在线播放| 国产xxxxxx| 亚洲精品久久久久久下一站| 免费一级在线观看播放网址| 亚洲午夜精品久久久久久性色| av在线中文| 欧美成人高清视频| 成年男女免费视频网站不卡| 欧美怡春院一区二区三区| 成人全视频在线观看在线播放高清 | 欧美成人a视频| 性猛交xxxx| 中文字幕免费国产精品| 97caopron在线视频| 97在线免费视频| 国产69精品久久久久9999人| 亚洲一区亚洲二区亚洲三区| av综合在线观看| 狠狠色丁香婷婷综合久久片| 亚洲妇女无套内射精| 2023国产精品自拍| 亚洲视频重口味| 婷婷六月综合网| 影音先锋国产在线| 亚洲第一页在线| 18视频免费网址在线观看| 欧美另类xxx| 神马久久午夜| 亚洲专区国产精品| 国产精品欧美在线观看| 红桃一区二区三区| 视频一区视频二区在线观看| 中文字幕在线视频一区二区| 久久免费国产精品| 青青草精品在线视频| 日韩欧美国产黄色| 国产富婆一级全黄大片| 国产一区二区美女视频| bl在线肉h视频大尺度| 国产精品专区h在线观看| 国产+成+人+亚洲欧洲在线| 色综合久久久久久久久五月| 亚洲大黄网站| 亚洲天堂一区二区在线观看| 99精品视频中文字幕| 亚洲一区二区三区四区av| 中文字幕一区二区三区在线观看 | 亚洲一区在线视频观看| 久久精品国产成人av| 欧美一区二区私人影院日本| 四虎影院在线域名免费观看| 久久成人精品一区二区三区| 欧美成人黑人| 国产精品一区二区三区免费| 98精品视频| 欧美伦理片在线看| 99综合电影在线视频| 精品一区在线视频| 欧美蜜桃一区二区三区| porn亚洲| 国产精品久久av| 国产亚洲欧美日韩在线观看一区二区| 黄色激情在线视频| 国产毛片精品一区| 黄色一级大片在线免费观看| 欧美亚洲动漫制服丝袜| 日本亚洲欧美| 91av在线免费观看视频| 超碰97成人| 亚洲理论电影在线观看| 国产丶欧美丶日本不卡视频| 日本 欧美 国产| 欧美年轻男男videosbes| 日本在线免费| 成人黄色av网站| 天天天综合网| 久久久久久久久久毛片| 亚洲女同女同女同女同女同69| 91tv国产成人福利| www国产亚洲精品久久网站| 欧美日韩卡一| 在线观看欧美亚洲| 狠狠色丁香九九婷婷综合五月| 国产精品久久亚洲| 性插视频在线观看| 国模视频一区二区| 99re8这里有精品热视频免费 | 公肉吊粗大爽色翁浪妇视频| 在线视频欧美精品| 尤物网在线观看| 亚洲free性xxxx护士白浆| 欧美黄色大片网站| 国产香蕉精品视频| 午夜亚洲福利老司机| 亚洲av毛片成人精品| 国产第一区电影| 婷婷亚洲综合| 中文字幕制服丝袜| 天天免费综合色| 久久精品a一级国产免视看成人| 国产v综合ⅴ日韩v欧美大片| 久久福利综合| 伊人av在线播放| 亚洲风情在线资源站| 四虎影院在线播放| 国产精品欧美激情在线播放| 亚洲女同中文字幕| 亚洲精品乱码久久久久久蜜桃图片| 精品久久久久久电影| 成黄免费在线| 91精品免费| 老色鬼久久亚洲一区二区| 日韩av片在线免费观看| 日韩一区二区免费在线电影 | 日韩欧美一区二区三区久久| 国产高清视频在线播放| 3d动漫啪啪精品一区二区免费 | 精品三级国产| 大西瓜av在线| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品一级视频| 91国内在线视频| 日韩在线观看一区| 精品1卡二卡三卡四卡老狼| 91福利视频久久久久| av毛片在线免费| 欧美自拍资源在线| 国产黄色成人av| 国产精品第六页| 欧美激情精品久久久久久免费印度 | 欧美大黄免费观看| 国模一区二区|