Python辦公實戰!按姓名拆分Excel為單獨檔案,微信自動發給相應聯絡人
大家好,這裡是Python程式設計師晚楓,今天給大家分享一篇讀者的來稿:Python + Excel自動化辦公,在工作中的實際應用。
歡迎大家總結pip install python-office的使用經驗,聯絡我投稿喲~
一、前言
最近遇到一個需求:
- 把員工資訊彙總表excel,按員工姓名拆分成單獨的excel,新excel以員工姓名命名,裡面第一行是表頭,第二行是員工資訊。
- 然後把excel通過微信單獨傳送給每位員工。
這個需求適用於傳送月度工資表、學校學生資訊統計等場景。
在B站上找到@程式設計師晚楓
,大神製作的python-office庫可以完美實現這個功能,在此拜謝,給大佬端茶。動手操作過程中遇到一些困難,把我的解決思路寫下,供大家參考。
二、準備環境
1、請適用python 3.8.9 64位版本
其他版本在安裝python-office庫時會遇到各種問題,解決起來費時費力,建議直接使用python 3.8.9 64位版本,只需要在pycharm上搭建一個新環境,就可以輕鬆安裝使用了。
2、安裝python-office
pip install python-office
3、還會使用openpyxl這個庫,用來處理excel。
三、思路分析
1、讀取excel
用openpyxl
庫的load_workbook()
讀取相應的表格,表單和單元格都用列表的形式使用就行,例如['Sheet1'].['B1']
2、刪除excel不用的行
openpyxl庫的刪除整行命令是ws.delete_rows()
,括號中輸入行號,刪除行時要注意從後往前刪除,否則行號會出現錯誤:
比如刪除了第二行後要刪第三行,這時第三行已經變成了第二行,給刪除造成麻煩,從後往前刪就不會出現這個問題。
這裡會用到最大行,命令為ws.max_row
,接著用for遍歷,需要倒著數,for i in range(ws.max_row, 1, -1)
,這樣就從最後一行開始遍歷,一直遍歷到第二行,把不想要的用ws.delete_rows(i)
刪除就行。
3、儲存成單獨excel。
wb.save()
,括號中寫新的檔名
4、利用python-office庫傳送微信訊息。
只需要用到一行命令,簡單背後的複雜都由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) #通過微信傳送檔案,分別在括號裡寫上微信暱稱和檔案地址。
- 幫師姐把100個Excel中符合條件的資料,彙總到1個Excel裡
- 176萬!GPT-4釋出了,如何檢視OpenAI的下載量?
- 1行Python程式碼,把PPT轉成圖片,python-office功能更新~
- 定了!Python3.7,今年停止更新!
- 1行Python程式碼去除圖片水印,網友:乾乾淨淨!
- Python辦公實戰!按姓名拆分Excel為單獨檔案,微信自動發給相應聯絡人
- 12個Python自動化辦公的官方文件,中文版只有2個?
- 終究還是錯付了!這2種Python寫法已經被淘汰了,你是不是還在用?
- 用Python下載B站視訊?1行命令搞定,悄悄用
- 用Python自動生成 圖文並茂的資料分析 報告
- 自動合併Excel的4種方法,pandas自動化辦公,YYDS
- 絕了!深度解析了1道華為Python筆試題,竟然可以學會12種Python里正則表示式的用法
- 1行Python程式碼,實現PDF轉圖片,速度太太太太太快了
- 1行Python程式碼,拿到周杰倫新歌的MP3檔案,終於可以免費聽周杰倫了
- 官方推薦:6種Pandas讀取Excel的方法,太方便了~
- 如何生成1億個手機號碼?Python生成隨機數的22種方法,random函式太強了~
- 新人必看:python自動化辦公,開源專案的目錄結構
- 一行Python程式碼,給PDF檔案新增水印
- 太厲害了,通過文件內容快速查詢檔案,1行Python程式碼實現
- 一行Python程式碼,如何成為辦公小助手?這5個操作,超實用!