最近在做一些數(shù)據(jù)處理和計(jì)算的工作,因?yàn)閿?shù)據(jù)是以.csv格式保存的,因此剛開(kāi)始直接用Excel來(lái)處理。但是做著做著發(fā)現(xiàn)重復(fù)的勞動(dòng)其實(shí)并沒(méi)有多大的意義,于是就想著寫(xiě)個(gè)小工具幫著處理。以前正好在一本書(shū)上看到過(guò)使用Python來(lái)處理Excel表格,可惜沒(méi)有仔細(xì)看。于是我到處查找資料,基本解決了日常所需,終于算是完成了任務(wù),因此撰寫(xiě)此文就算是總結(jié)吧,主要記錄使用過(guò)程的常見(jiàn)問(wèn)題及解決。

python操作excel主要用到xlrd和xlwt這兩個(gè)庫(kù),即xlrd是讀excel,xlwt是寫(xiě)excel的庫(kù)。可從這里下載https://pypi.python.org/pypi。下面分別記錄python讀和寫(xiě)excel。
Python寫(xiě)excel——xlwt
Python寫(xiě)excel的難點(diǎn)不在構(gòu)造一個(gè)workbook的本身,而是填充的數(shù)據(jù),不過(guò)這不在范圍內(nèi)。在寫(xiě)excel的操作中也有棘手的問(wèn)題,比如寫(xiě)入合并的單元格就是比較麻煩的,另外寫(xiě)入還有不同的樣式。
詳細(xì)代碼如下:

結(jié)果圖:
在此,對(duì)write_merge()的用法稍作解釋?zhuān)缟鲜觯簊heet1.write_merge(1,2,3,3,'打游戲'),即在四列合并第2,3列,合并后的單元格內(nèi)容為"合計(jì)",并設(shè)置了style。其中,里面所有的參數(shù)都是以0開(kāi)始計(jì)算的。
Python讀excel——xlrd
Python讀取Excel表格,相比xlwt來(lái)說(shuō),xlrd提供的接口比較多,但過(guò)程也有幾個(gè)比較麻煩的問(wèn)題,比如讀取日期、讀合并單元格內(nèi)容。
下面先看看基本的操作:
圖表數(shù)據(jù)
整體思路為,打開(kāi)文件,選定表格,讀取行列內(nèi)容,讀取表格內(nèi)數(shù)據(jù)
詳細(xì)代碼如下:

運(yùn)行結(jié)果如下:
那么問(wèn)題來(lái)了,上面的運(yùn)行結(jié)果中紅框框中的字段明明是出生日期,可顯示的確實(shí)浮點(diǎn)數(shù);同時(shí)合并單元格里面應(yīng)該是有內(nèi)容的,結(jié)果不能為空。
別急,我們來(lái)一一解決這兩個(gè)問(wèn)題:
1.python讀取excel中單元格內(nèi)容為日期的方式
python讀取excel中單元格的內(nèi)容返回的有5種類(lèi)型,即上面例子中的ctype:
ctype : ?0 empty,1 string,2 number, 3 date,4 boolean,5 error
即date的ctype=3,這時(shí)需要使用xlrd的xldate_as_tuple來(lái)處理為date格式,先判斷表格的ctype=3時(shí)xldate才能開(kāi)始操作。
詳細(xì)代碼如下:

2.獲取合并單元格的內(nèi)容
在操作之前,先介紹一下merged_cells()用法,merged_cells返回的這四個(gè)參數(shù)的含義是:(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列合并。
詳細(xì)代碼如下:

發(fā)現(xiàn)規(guī)律了沒(méi)?是的,獲取merge_cells返回的row和col低位的索引即可!?于是可以這樣批量獲取:
詳細(xì)代碼如下:

運(yùn)行結(jié)果跟上圖一樣,如下:
Python讀寫(xiě)Excel表格,就是這么簡(jiǎn)單粗暴又好用,如果覺(jué)得不錯(cuò),對(duì)你工作中有幫助,動(dòng)動(dòng)手指分享給更多人哦
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
分享題目:Python讀寫(xiě)Excel表格,就是這么簡(jiǎn)單粗暴又好用-創(chuàng)新互聯(lián)
分享地址:http://www.chinadenli.net/article40/djcjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、建站公司、品牌網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站維護(hù)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容