操控excel,選擇Python還是vba?

玩玩wps


你好,我是一個開發人員,有多年的開發經歷。操控excel,選擇Python還是vba,大家可能都會從語言的強大功能上,語言的熱門程度去推薦使用哪個更好。


但是我認為,使用微軟的產品,最好使用微軟的工具。因為這樣適配性更好,不會出現一些讓你無法解決的難題。而解決問題,會耗費你大量的時間

所以我推薦使用vba,如果你問除了vba,你最推薦哪個語言,我推薦powershell。


Python,VBA,Powershell介紹:

python操作excel,一般是有2個包可以使用,但是VBA有的功能,對於python還是有侷限。具體的時候你也能查到,但是都是相對基礎的處理。

VBA的編寫,其實我感覺稍有點不成體系,你每次寫完之後,過段時間有又很容易忘記語法,所以我一般把實現方法,都記下來,用到時直接拿來用。VBA的編寫可以結合excel,邊編寫邊調試,exel上能看到效果,還是比較方便的。

對於powershell,還是很推薦的。你可以使用datatable和excel交互數據。最近在改善一個移行工具時,改用powershell處理excel,原來是用excel+VBA手動處理。你會體會到批量處理excel的效率。powershell同樣是微軟的產品,是準備全面替換bat的工具,功能相當強大,對excel的支持,處理都很方便。很建議你試試。希望對你有所幫助。


思忖小下


數據量大更建議用Python,vba一般都是將數據存放在內存中,當數據不拆分電腦配置又不高,就會顯得比較卡,數據處理完畢後,不釋放下內存電腦用起來也會比較卡,vba一般只會啟動2個cpu核心進行數據計算,運算效率也比較低,現在微軟已經停止對vba的更新,更建議學習Python,如果只是操作excel,這兩個學習難度差別不大,但是Python發展空間會更好


還有一種更加便捷的方法,就是使用power bi的三大組件進行數據處理,使用power query進行數處理,powerpivot進行分析,power view進行數據可視化,優點就是學習週期短,數據可實現自動刷新,上手比較快,使用這個方法,效率可能會比excel快一些,但是速度仍然不及python,當然了為了長久可持續更建議學習Python,但是上手週期會比較長


Excel從零到一


其實兩者皆可,15000行數據來說,根本不算多,前面幾個回答都在推薦vba,這裡我重點介紹一下python是如何處理excel的,涉及xlrd/xlwt、openpyxl和pandas,感興趣的朋友可以嘗試一下:

基礎模塊xlrd/xlwt

這是python比較基礎的2個excel處理庫,相信許多朋友都聽說或使用過,xlrd專門用於讀取excel數據,xlwt專門用於寫入excel數據,常見的工作表、行列、單元格等基本操作,這2個庫都可以輕鬆搞定,數據量比較多、內存不夠的情況下,可以先讀取一部分數據,處理完成後,再讀取下一部分數據,這樣電腦就不容易卡死,效率也能更高一些:

簡單易用openpyxl

這也是一個比較常用的python excel處理庫,和xlrd/xlwt一樣,openpyxl也可以輕鬆進行excel讀寫,支持按行按列讀取/刪除數據、單元格合併/拆分、插入圖表/圖片、調用函數/公式等基本操作,只不過僅兼容xlsx/xlsm 2種格式,較早的xls讀寫會出錯,數據量比較多的情況下,也可先讀取一部分,處理一部分,循環遞歸,直到所有數據都處理完:

專業強大pandas

說起pandas,許多朋友應該非常熟悉,尤其是做數據分析和處理的,作為python一個強大、著名的數據分析庫,pandas可以輕鬆處理日常各種數據格式,包括txt、csv、excel、json、mysql等,只需簡單幾行代碼即可快速完成數據的導入和導出,同時內置的數據格式提供了非常方便的數據處理,數據量多的情況下,可以按塊進行讀取,每次讀取固定大小的塊,處理完成後,再讀取下一個塊,直到所有數據都處理完:

目前,就分享這3個python excel處理庫吧,簡單易用的就是xlrd/xlwt、openpyxl,專業強大,也比較高效的就是pandas,只不過都需要一定python基礎才行,vba也行,但比較侷限,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


分享到:


相關文章: