Python處理Excel文件主要使用兩個(gè)庫:pyExcelerator 和 xlrd。兩個(gè)庫雖然都具備讀寫excel文件的功能,但顯然是各有千秋,總結(jié)一下大概就是:pyExcelerator適合寫入數(shù)據(jù),而xlrd則適合讀取數(shù)據(jù)。
一、pyExcelerator庫的介紹
pyExcelerator讀取數(shù)據(jù)不方便,因?yàn)樗惶峁┍?#26684;的行數(shù)、列數(shù)、單元格數(shù)據(jù)類型等關(guān)鍵信息的訪問接口,也不支持空數(shù)據(jù)的存在,因此你沒法對(duì)它進(jìn)行循環(huán)操作。它讀取數(shù)據(jù)的機(jī)制是這樣的:sheets=parse_xls(filename) 這個(gè)sheets返回的是一個(gè)列表,每一項(xiàng)是一張sheet的數(shù)據(jù),每一項(xiàng)本身是一個(gè)二元組的數(shù)據(jù)結(jié)構(gòu)(表名,單元格數(shù)據(jù)),單元格數(shù)據(jù)又是一個(gè)字典結(jié)構(gòu),key是單元格的索引(i,j),value是單元格的數(shù)據(jù)。總結(jié)一下,如果你想獲取此excel文件的第N張工作表的第i行第j列的單元格數(shù)據(jù),則應(yīng)該是這樣:sheets[n][1][(i,j)]。
而當(dāng)要將數(shù)據(jù)寫入excel時(shí),我們就可以使用pyExcelerator來操作,很方便,一些操作示例:
from pyExcelerator import *w=Workbook() #創(chuàng)建工作簿ws=w.add_sheet('Sheet1') #添加工作表ws.write(i,j,value) #寫入單元格 w.save('book.xls')二、xlrd庫的介紹
相比之下,xlrd庫讀取數(shù)據(jù)則要方便的多,下面是一些使用范例:
import xlrdwb = xlrd.open_workbook('book.xls') #打開文件sh = wb.sheet_by_index(0) #獲得工作表的方法1sh = wb.sheet_by_name('Sheet1') #獲得工作表的方法2cellA1Value = sh.cell_value(i, j) #獲得單元格數(shù)據(jù)columnValueList = sh.col_values(i) #獲得一列的數(shù)據(jù)row_count=sh.nrows #獲得行數(shù)col_count=sh.ncols #獲得列數(shù)但需要注意的是:xlrd庫目前似乎還不支持excel2007版本,故使用時(shí)要注意處理的excel文件版本。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注