您好,登錄后才能下訂單哦!
本篇內容介紹了“如何用Python實現按姓名拆分Excel為單獨文件并自動發給相應聯系人”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
最近遇到一個需求:
把員工信息匯總表excel,按員工姓名拆分成單獨的excel,新excel以員工姓名命名,里面第一行是表頭,第二行是員工信息。
然后把excel通過微信單獨發送給每位員工。
這個需求適用于發送月度工資表、學校學生信息統計等場景。
其他版本在安裝python-office庫時會遇到各種問題,解決起來費時費力,建議直接使用python 3.8.9 64位版本,只需要在pycharm上搭建一個新環境,就可以輕松安裝使用了。
pip install python-office
用openpyxl
庫的load_workbook()
讀取相應的表格,表單和單元格都用列表的形式使用就行,例如['Sheet1'].['B1']
openpyxl庫的刪除整行命令是ws.delete_rows()
,括號中輸入行號,刪除行時要注意從后往前刪除,否則行號會出現錯誤:
比如刪除了第二行后要刪第三行,這時第三行已經變成了第二行,給刪除造成麻煩,從后往前刪就不會出現這個問題。
這里會用到最大行,命令為ws.max_row
,接著用for遍歷,需要倒著數,for i in range(ws.max_row, 1, -1)
,這樣就從最后一行開始遍歷,一直遍歷到第二行,把不想要的用ws.delete_rows(i)
刪除就行。
wb.save()
,括號中寫新的文件名
只需要用到一行命令,簡單背后的復雜都由python-office
庫的開發者幫我們封裝好了。
office.wechat.send_file(who=, file=)
,分別在括號里寫上微信昵稱和文件地址。
上代碼~
import openpyxl, office #導入兩個庫,第一個處理excel,第二個用到微信發消息功能,第二個庫還有很多強大便捷的功能。 wb = openpyxl.load_workbook('C:/CoderWanFeng/./././???.xlsx') #括號中寫匯總文件地址 ws = wb['Sheet1'] #獲取excel表單 Names = ws['B'] #獲取表單中第二列,我的表單第二列是微信昵稱,可以根據實際進行調整 max_row = ws.max_row #獲取excel的最大行數 for Name in Names: #第5行代碼獲得的昵稱需要遍歷 Name = Name.value #遍歷出來的是元祖,需要用value進行取值 if Name == '程序員晚楓': #我的excel B1單元格寫的是程序員晚楓,大家可以根據實際調整 continue else: wb = openpyxl.load_workbook('C:/Users/./././???.xlsx') ws = wb['Sheet1'] for j in range(max_row, 1, -1): #倒著遍歷,方便刪除時不錯序 if ws[f'B{j}'].value != Name: ws.delete_rows(j) #刪除行 file_path = f'C:/Users/./././{Name}.xlsx' #重命名 wb.save(file_path) #保存excel office.wechat.send_file(who=Name, file=file_path) #通過微信發送文件,分別在括號里寫上微信昵稱和文件地址。
“如何用Python實現按姓名拆分Excel為單獨文件并自動發給相應聯系人”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。