如何利用Python編程批量處理Excel,來提高日常工作效率?

孫先生-專屬


Python批量處理Excel的話,有許多現成的庫可以直接使用,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

01

xlrd、xlwt

這是Python 2個非常基礎的Excel讀寫庫,其中xlrd專門用於讀取Excel,xlwt專門用於寫入Excel,支持常見的行列、單元格操作,安裝的話,直接在cmd窗口輸入命令“pip intsall xlrd xlwt”即可,官方自帶有非常詳細的入門教程文檔和API接口,非常適合開發者學習:

這裡以簡單的讀取Excel為,測試代碼如下,基本思想先打開Excel,獲取工作表,然後根據所需直接讀取對應行列和單元格內容即可,非常簡單:

02

openpyxl

這是一個專門用於讀取Excel的Python庫,目前僅支持Excel 2010格式(xls不支持),操作單元格、行列,設置樣式、插入圖片等非常容易,安裝的話,直接在cmd窗口輸入命令“pip install openpyxl”即可,官方文檔含有非常詳細的代碼示例和截圖,非常適合初學者入門和學習:

測試代碼如下,非常簡單,以寫入Excel為例,基本思想先創建一個Excel文件,然後獲取工作表,最後再往對應單元格寫入內容即可:

03

pandas

這是Python一個非常著名的數據處理庫,在業界非常流行和受歡迎,內置了大量函數和數據類型,可以輕鬆處理Excel文件,並進行復雜的數據處理,代碼量更少,功能也更強大,安裝的話,直接在cmd窗口輸入命令“pip install pandas”即可,官方自帶有非常詳細的入門教程,源碼都可直接運行,非常適合開發者學習和使用:

這裡以讀寫Excel為例,測試代碼如下,非常簡單,一行代碼就可輕鬆獲取或寫入數據,功能非常強大,推薦使用:

目前,就介紹這3個非常不錯的Python Excel處理庫吧,對於日常辦公和工作來說,非常不錯,只要你有一定Python基礎,熟悉一下相關文檔和示例,很快就能掌握的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


小小猿愛嘻嘻


思路與選擇更重要

我看過許多人一看到別人提問"python處理excel"之類的話題,立馬就說出一大堆的庫,結果很多初學者苦苦地編寫Python代碼處理數據,最後他們都會感覺太坑爹了。


如果我在這裡列出各種處理方法,那麼成千上百的字數都不夠看。我覺得你更應該瞭解思路與工具的選擇,不然方向錯了,你就算拿著再好用的工具也發揮不了作用。


Python 與 Excel 的交互

Python中有許多庫可以與Excel交互,比如 xlrd、xlwings等等,但是我要強調的是,這些庫僅僅讓你方便地與Excel打交道,比如,讀寫數據、設置格式。


如果你的日常任務僅僅是簡單設置格式,不需要對數據做複雜的計算和處理,那麼這些庫已經可以滿足你的需求


數據處理才是核心

很多人已經會一些編程語言(比如 vba),轉到python上處理excel,結果是把vba代碼用python代碼寫一遍。諸如求平均、求和等各種從簡單到複雜的處理,都依靠自己編寫各種循環遍歷,最後只能從入門到放棄。


上述原因主要是他們只關注如何與excel交互,而忽視了數據處理才是整個問題的關鍵點。而在python中數據處理的最重要的庫pandas,就是你唯一的選擇。


選擇

因此你需要先評估你的日常處理任務,是否有非常多的處理環節是從excel開始的。

  • 比如,你的數據是直接從數據庫中處理獲取,你只需要編寫代碼把數據輸出到excel,那麼這顯然不需要使用pandas(實際上使用pandas很可能比使用其他庫來得簡單)

  • 如果你需要使用python做各種處理,然後輸出excel,那麼你必須要學習pandas,不然你只是在低效率處理數據


為什麼要用pandas?

pandas的一個最大的優勢在於,大多時候你只需要告訴他做什麼,就可以完成工作,而不需要你親自編寫如何遍歷數據的代碼。許多非常複雜的處理要求,使用pandas解決是輕而易舉,並且有非常好的擴展性。


我不想列出代碼去佔用篇幅了。如果你有興趣,可以參考我頭條號的文章,你會發現這些文章中的python解決方案,完全沒有自己遍歷數據的寫法。以下是其中的一些文章:

  • [Excel數據處理你是選擇Vba還是Python?當然選擇pandas](

  • 4篇"Python替代Excel Vba"系列文章

  • 若干篇利用pandas做數據分析的案例文章


最後我還是要提醒你,一定要根據自己的情況選擇適當的工具,這些都是輔助你工作的工具,不要被工具限制了你的思路


外星人玩Python


1.讀入操作

def load_data():

filename = u'投資企業.xls'

data = xlrd.open_workbook(filename)

table = data.sheet_by_name(u'Sheet1')

# 選擇第4列(從第2行到最後一行)

name_list = table.col_values(3)[1:]

# 返回list

return name_list

2.寫入已存在excel

import xlrd

import xlwt

from xlutils.copy import copy

# 打開想要更改的excel文件

old_excel = xlrd.open_workbook('fileName.xls', formatting_info=True)

# 將操作文件對象拷貝,變成可寫的workbook對象

new_excel = copy(old_excel)

# 獲得第一個sheet的對象

ws = new_excel.get_sheet(0)

# 寫入數據

ws.write(0, 0, '第一行,第一列')

ws.write(0, 1, '第一行,第二列')

ws.write(0, 2, '第一行,第三列')

ws.write(1, 0, '第二行,第一列')

ws.write(1, 1, '第二行,第二列')

ws.write(1, 2, '第二行,第三列')

# 另存為excel文件,並將文件命名

new_excel.save('new_fileName.xls')

結語:我建議試試vba編程?


分享到:


相關文章: