python批量匯總word表格并自動發(fā)送郵件

? ? 最近一段時間每天都要幫老板匯總各BU的報表始花,我需要做的工作就是把各BU報表中的對應(yīng)的內(nèi)容復(fù)制粘貼到匯總表里永部,然后將匯總后的表格以郵件形式發(fā)送給老板鉴竭,雖然處理這些工作只需要大概10分鐘左右的時間,但如果能將這些工作交給程序自動處理,節(jié)省下來的時間做更有意義的事不香嗎驹饺?說干就干,在查閱了大量網(wǎng)絡(luò)資料后缴渊,通過python的docx庫實現(xiàn)了一鍵批量匯總word表格的功能赏壹,代碼如下:(python3.7版本)

import?os

import?docx

import?datetime

from?docx?import?Document?#導(dǎo)入word編輯庫

import?smtplib?

from?email.header?import?Header?

from?email.mime.text?import?MIMEText?

from?email.mime.multipart?import?MIMEMultipart?#導(dǎo)入郵件庫

zb?=?Document(r"c:\Users\THINKPAD\Desktop\test\xxxx.docx")?#讀入?yún)R總文件模板

curr_time?=?datetime.datetime.now()#獲取當(dāng)前如期

reporttime?=?curr_time.date()?#獲取當(dāng)前如期

newpath?=?r"c:\Users\THINKPAD\Desktop\test\xxxx%s.docx"%reporttime?#設(shè)置保存文件的路徑并在文件名中加入報告日期

newname?=?'xxx公司xxxx報表%s.docx'%reporttime?#自動給生成的匯總表命名

path_yuanqu?=?os.listdir(r"c:\Users\THINKPAD\Desktop\test\xxxx")#獲取保存報表的文件夾下所有文件列表(注意要保證文件夾下只有word文件,即文件后綴名以.docx或.doc結(jié)尾的文件)

print(path_yuanqu)

for?i?in?path_yuanqu:

????yuanqu?=?docx.Document(r'c:\Users\THINKPAD\Desktop\test\xxxx\{}'.format(i))#遍歷讀入文件夾下的文件

????file_name?=?os.path.basename(i)

????file_name?=?file_name.split('.')[0]#取不帶后綴的文件名賦值給file_name變量衔沼,這里是為了便于替換匯總文件模板中的指定內(nèi)容

????tables1?=?yuanqu.tables?#獲取文件中的表格集

????table1?=?tables1[0]#獲取文件中的第一個表格

????result_list?=?[]

????for?i?in?range(1,len(table1.rows)):#從表格第二行開始循環(huán)讀取表格數(shù)據(jù)

????????result?=?table1.cell(i,1).text

????????result_list.append(result)

????????#cell(i,0)表示第(i+1)行第1列數(shù)據(jù)蝌借,以此類推

????tables2?=?zb.tables?#獲取匯總文件模板中的表格集

????table2?=?tables2[0]#獲取文件中的第一個表格

????table2.cell(0,3).text='報告日期:%s'%reporttime?#在第一行第三列表格中填入報告日期

????for?j?in?range(1,len(table2.rows)):#從表格第二行開始循環(huán)替換表格數(shù)據(jù)

????????value?=?"%s:\n"%file_name

????????value_replace?=?"%s:\n%s"%(file_name,result_list[j-1])

????????table2.cell(j,1).text?=?table2.cell(j,1).text.replace(value,?value_replace)

zb.save(newpath)#將修改后的文檔另存到新的路徑

print('匯總表已生成!')

#以下是自動發(fā)送郵件模塊-------------------------------------------------------------------------

sender?=?'xxxx@qq.com'#發(fā)送郵箱

receiver?=?'xxxx'#接收郵箱

smtpserver?=?'smtp.qq.com'#郵箱服務(wù)器

username?=?'xxxx'#發(fā)送郵箱登錄名

password?=?'xxxxx' #郵箱授權(quán)碼

mail_title?=?'xxx報表'#郵件主題

#?創(chuàng)建一個帶附件的實例?

message?=?MIMEMultipart()?

message['From']?=?sender?

message['To']?=?receiver?

message['Subject']?=?Header(mail_title,?'utf-8')?

#?郵件正文內(nèi)容?

message.attach(MIMEText('xxxx報表',?'plain',?'utf-8'))?

#?構(gòu)造附件(附件為word格式的文本)?

att1?=?MIMEText(open(newpath,?'rb').read(),?'base64',?'utf-8')?

att1["Content-Type"]?=?'application/octet-stream'

att1.add_header('Content-Disposition',?'attachment',?filename=?newname)#這里保證發(fā)送的附件顯示的是word格式俐巴,否則會顯示bin文件

message.attach(att1)?

smtpObj?=?smtplib.SMTP_SSL(smtpserver)?#?注意:如果遇到發(fā)送失敗的情況(提示遠(yuǎn)程主機(jī)拒接連接)骨望,這里要使用SMTP_SSL方法?

smtpObj.connect(smtpserver)?

smtpObj.login(username,?password)?

smtpObj.sendmail(sender,?receiver,?message.as_string())?

print("郵件發(fā)送成功!P蓝妗擎鸠!")?

smtpObj.quit()

覺得有用就收藏吧,別忘了點歌贊哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缘圈,一起剝皮案震驚了整個濱河市劣光,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糟把,老刑警劉巖绢涡,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遣疯,居然都是意外死亡雄可,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門缠犀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來数苫,“玉大人,你說我怎么就攤上這事辨液∨凹保” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵滔迈,是天一觀的道長止吁。 經(jīng)常有香客問我,道長燎悍,這世上最難降的妖魔是什么敬惦? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮间涵,結(jié)果婚禮上仁热,老公的妹妹穿的比我還像新娘。我一直安慰自己勾哩,他們只是感情好抗蠢,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著思劳,像睡著了一般迅矛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上潜叛,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天秽褒,我揣著相機(jī)與錄音,去河邊找鬼威兜。 笑死销斟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的椒舵。 我是一名探鬼主播蚂踊,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笔宿!你這毒婦竟也來了犁钟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤泼橘,失蹤者是張志新(化名)和其女友劉穎涝动,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炬灭,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡醋粟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了重归。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米愿。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖提前,靈堂內(nèi)的尸體忽然破棺而出吗货,到底是詐尸還是另有隱情,我是刑警寧澤狈网,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布宙搬,位于F島的核電站,受9級特大地震影響拓哺,放射性物質(zhì)發(fā)生泄漏勇垛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一士鸥、第九天 我趴在偏房一處隱蔽的房頂上張望闲孤。 院中可真熱鬧,春花似錦烤礁、人聲如沸讼积。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勤众。三九已至舆绎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間们颜,已是汗流浹背吕朵。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留窥突,地道東北人努溃。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像阻问,于是被迫代替她去往敵國和親梧税。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354