溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python讀寫Excel表格,就是這么簡單粗暴又好用

發(fā)布時間:2020-07-19 22:55:40 來源:網絡 閱讀:602 作者:Python熱愛者 欄目:編程語言

最近在做一些數據處理和計算的工作,因為數據是以.csv格式保存的,因此剛開始直接用Excel來處理。但是做著做著發(fā)現重復的勞動其實并沒有多大的意義,于是就想著寫個小工具幫著處理。以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。于是我到處查找資料,基本解決了日常所需,終于算是完成了任務,因此撰寫此文就算是總結吧,主要記錄使用過程的常見問題及解決。

python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫??蓮倪@里下載https://pypi.python.org/pypi。下面分別記錄python讀和寫excel。

Python寫excel——xlwt

Python寫excel的難點不在構造一個workbook的本身,而是填充的數據,不過這不在范圍內。在寫excel的操作中也有棘手的問題,比如寫入合并的單元格就是比較麻煩的,另外寫入還有不同的樣式。

詳細代碼如下:


Python讀寫Excel表格,就是這么簡單粗暴又好用

結果圖:

Python讀寫Excel表格,就是這么簡單粗暴又好用

在此,對write_merge()的用法稍作解釋,如上述:sheet1.write_merge(1,2,3,3,'打游戲'),即在四列合并第2,3列,合并后的單元格內容為"合計",并設置了style。其中,里面所有的參數都是以0開始計算的。

Python讀excel——xlrd

Python讀取Excel表格,相比xlwt來說,xlrd提供的接口比較多,但過程也有幾個比較麻煩的問題,比如讀取日期、讀合并單元格內容。

下面先看看基本的操作:

Python讀寫Excel表格,就是這么簡單粗暴又好用

圖表數據

整體思路為,打開文件,選定表格,讀取行列內容,讀取表格內數據

詳細代碼如下:


Python讀寫Excel表格,就是這么簡單粗暴又好用

運行結果如下:

Python讀寫Excel表格,就是這么簡單粗暴又好用

那么問題來了,上面的運行結果中紅框框中的字段明明是出生日期,可顯示的確實浮點數;同時合并單元格里面應該是有內容的,結果不能為空。

別急,我們來一一解決這兩個問題:

1.python讀取excel中單元格內容為日期的方式

python讀取excel中單元格的內容返回的有5種類型,即上面例子中的ctype:

ctype : ?0 empty,1 string,2 number, 3 date,4 boolean,5 error

即date的ctype=3,這時需要使用xlrd的xldate_as_tuple來處理為date格式,先判斷表格的ctype=3時xldate才能開始操作。

詳細代碼如下:


Python讀寫Excel表格,就是這么簡單粗暴又好用


Python讀寫Excel表格,就是這么簡單粗暴又好用

2.獲取合并單元格的內容

在操作之前,先介紹一下merged_cells()用法,merged_cells返回的這四個參數的含義是:(row,row_range,col,col_range),其中[row,row_range)包括row,不包括row_range,col也是一樣,即(1, 3, 4, 5)的含義是:第1到2行(不包括3)合并,(7, 8, 2, 5)的含義是:第2到4列合并。

詳細代碼如下:


Python讀寫Excel表格,就是這么簡單粗暴又好用


Python讀寫Excel表格,就是這么簡單粗暴又好用

發(fā)現規(guī)律了沒?是的,獲取merge_cells返回的row和col低位的索引即可!?于是可以這樣批量獲?。?/p>

詳細代碼如下:


Python讀寫Excel表格,就是這么簡單粗暴又好用

運行結果跟上圖一樣,如下:

Python讀寫Excel表格,就是這么簡單粗暴又好用

Python讀寫Excel表格,就是這么簡單粗暴又好用,如果覺得不錯,對你工作中有幫助,動動手指分享給更多人哦


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI