hi,大家好,我是朱小五
python開發微信小程序,兩周前我發了一篇辦公自動化的文章,本來決定最近這個月就不發同類型的了。
結果正如你們所見:
微信怎么查工資條、因為這真的是一個很好的Python自動化的案例!!!
所以即使打臉也要推薦給大家!!!
對于小公司,采用手動方式一個個發送郵件還是可以的。如果一個上百號,上千號,或者更大規模的公司,我們再一個個發送工資條郵件,就太浪費時間了。
鑒于此,我寫了一個這樣的程序,實現Python自動化群發工資條的功能。
原始數據源如下:
最終效果如下:
看到這里,你肯定也覺得很好玩兒吧?那么這樣一個自動化程序,應該怎么做呢?接著往下看。
流程分析
其實這樣一個代碼,總結下來,就只有如下5步:① 導入相關模塊;② 讀取Excel表格;③ 登錄郵箱;④ 準備要發送的郵件正文;⑤ 發送郵件;
1)導入相關模塊
from?openpyxl?import?load_workbook????#?用于操作Excel的模塊
import?yagmail???#?用于存儲郵箱地址和密碼的模塊
import?keyring???#?用于記錄你郵箱地址和密碼的模塊
from?datetime?import?*???#?用于獲取當前系統時間的模塊
2)讀取Excel表格
#?加載Excel文件
wb?=?load_workbook("群發工資條.xlsx",data_only=True)
sheet?=?wb.active
print(sheet)
-------------------------------------------------------
for?row?in?sheet:
row_text?=?""
for?cell?in?row:
if?cell.column?==?"B":
continue
row_text?+=?f"{cell.value},"
print(row_text)
------------------------------------------------------
print("年:",?date.today().year)
print("月:",?date.today().month)
print(f"{date.today().year}-{date.today().month}月")
結果如下:
3)登錄郵箱
yagmail.register("1127421544@qq.com","flmyucvntuvbjbcb")
pwd?=?keyring.get_password("yagmail","1127421544@qq.com")
yag?=?yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com",password=pwd)
需要注意的是:第一行代碼是用于存儲你的郵件地址和密碼。第二行代碼使用keyring是為了記錄你的郵件地址和密碼。第三行代碼直接登錄郵箱。
4)準備要發送的正文
由于發送的正文里面,需要我們發送一個帶表格的郵件,這就需要我們了解一點前端知識。因此,我在最后面花一個章節為大家講解。
5)發送郵件
yag.send(f"{email}",f"數據分析與統計學之美有限公司{date.today().year}-{date.today().month}月工資情況",contents)
上述代碼共有3個參數:第一個參數是收件人的郵箱;第二個參數是郵件的標題;第三個參數是發送的內容。
關于html代碼的特別說明
會用Python發送郵件的人都知道,郵件正文內容可以寫html代碼。你可能覺得自己啥也不會,但是不用擔心,我們不需要學習太高深的前端代碼,做過爬蟲的人耳濡目染,都能夠看懂一些。
1)自己寫一個簡單的前端代碼
我們可以直接用Pycharm創建一個新的html文件,里面會顯示初始的前端代碼,我們進行簡單的添加,就可以獲得一個表格啦!
最終在瀏覽器中顯示效果如下:
從上圖中根本看不出這是一個表格,那是因為我們沒有為它設置一個樣式,下面要做的就是為這個表格設置樣式。
最終在瀏覽器中顯示效果如下:
2)在Python中怎么寫前端代碼
從上圖可以看出,整個前端代碼就是用一些列的標簽組成,同時標簽都是成對出現的。因此,在Python中寫前端代碼時,只需要在對應位置添加對應的標簽即可。
for?row?in?sheet:
row_text?=?"
"for?cell?in?row:
if?cell.column?==?"B":
continue
row_text?+=?f"
{cell.value}"row_text?+=?"
"print("\n")
print(row_text)
結果如下:
完整代碼
為了文章的完整性,我在文章最后放上我的代碼。但是限于文章篇幅,最后我只粘貼一張圖片,詳細代碼,大家可以去文末獲取。
本文源碼下載鏈接:
https://alltodata.cowtransfer.com/s/1821d6a2128344
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态