#分享 自學 Python 自動化產出 Excel & 寄信

1月30日 17:29
身為非程式背景的 Python 小菜鳥, 在研究了一段時間之後終於摸熟(?)了怎麼用 Excel 寄信還有編輯 Excel 了 XD 先打預防針: 因為我是從商管科系畢業之後因為工作需求自己研究 Python 的, 所以裡面提供的可能不是最佳解法,發文除了分享,另一方面也很希望跟大家交流喔! 另外,也怕程式碼怕放上會占版面,所以這邊給個流程、概念還有要特別注意的小眉角,程式碼就只在文章底部提供 URL ___________________ 正文: 因為工作需要我們定期產出報告給到其他部門的主管們,所以就開始研究了從 Python 的 mysql connector、Pandas 還有 xlsxwriter 等神奇的 library 我使用的工具 / 環境: 1) 公司電腦之 Windows 10 2) Jupyter notebook (或是其他 Python 編譯環境) 3) 工作排程器 (Windows 內建) 第三點是自動化要達成不可或缺的軟體,不過聽說在不同 OS 上使用的也不同,希望 Windows 達人若有推薦其他的排程器也可以讓我知道(跪求) 而這次的工作任務我大概拆成這幾個環節: 1) 連接數據庫:以 Python 連接 MySQL 上的 Raw Data 2) 建立資料表:以 Python 生成各個報告需要的 data tables (DataFrame) 3) 儲存資料表:以 Python 指令 data tables 儲存成 Excel,並按品牌分成多個 sheet 4) 建立寄信指令:以 Python 透過自己的信箱授權夾帶檔案寄信給主管們 5) 儲存 Python 指令:在 .ipynb 完成上述步驟後,將其轉為 .py 6) 建立自動生成指令:建立批次檔案 (.bat),讓程式可以自動讀取你的 Python 指令 7) 指定觸動程序:使用工作排程器,設定何時(如何)觸發 .bat 檔案。如:每天幾點、使用者登入時、中斷連線時等等 這次任務的重頭戲其實就是在於掌握自動化工具(工作排程器)的使用方式,對於比較「不熟」Python 的朋友,則是要花多一點時間研究上面提到的神奇的套件們~底下稍微提兩個我覺得值得講的套件: ___________________ A、Eecel 編輯:xlsxwriter
Xlsxwriter 彈性滿高的,而且又是 Anaconda 下載後內建!這個套件不只可以單純儲存 dataframe 到 Excel,視覺化(長條圖、折線圖)還有優化儲存格(調整字型、儲存格寬度)都做得到! 所以對於圖表或是資料格式有強迫症的朋友,這個套件非常推薦給你們,相信在做行銷或是 BI 的大大應該會很需要 XD(不然一般可能也只是 df.to_excel 就草草存檔了,也未必會用到 xlsxwriter) ___________________ B、Gmail / G suite 寄信:smtplib & email 這部份說真的現有網路資源已經很豐富, 唯一要注意的是寄信前記得要設定一下 Gmail 權限,不然信會被卡著送不出去呦~ https://myaccount.google.com/lesssecureapps ___________________ 最後也希望大家可以分享對於這樣操作下來的看法,尤以自動化的操作不知道有沒有其他推薦的方式 >_< ___________________ 各種需求的程式碼我都放在文章裡面,再請大家依照需求點進去拿惹~ *怎麼用 Python 寄信 https://pse.is/python_post_200120 *怎麼在 Windows 做自動排程 https://pse.is/python_post_auto_200120 *怎麼用 Python xlsxwriter 編輯 Excel(寫入資料 & 畫圖表) https://medium.com/@booksandcareer/分享-使用-python-自動產出-excel-報告-windows-10-3052fde8f39c
愛心
69
.回應 11
共 11 則回應
windows的工作排程器算是好上手且易用的工具 如果要無視平台你可以考慮找一下python的第三方套件 關鍵字schedule,cron job 一定有類似的東西可以用... 每個語言都應該有
這我給99分 , 有github 就+1
國立澎湖科技大學
好強
請教一下有什麼推薦的ide
已收藏 🙏🏻
謝謝大家的回應~ @B1 感謝我會再去研究! @B2 @B3 @B5 謝謝你們~ @B4 我們工作上只用 Jupyter notebook 就夠用了,所以沒辦法推薦你其他更好用的(無從比較) XD
國立交通大學
可以直接用Excel 巨集加vb 啊(誤
崑山科技大學 電機工程系
收藏收藏我還在研究sql而已😂😂😂
B7 但他能處理的資料量是個問題呀 XD B8 之後可以交流~ :)
蠻厲害👍值得讚許
中原大學 資訊工程學系研究所
好強,我也在看怎麼實作ci/cd及寄出結果
馬上回應搶第 12 樓...