Python處理Excel文件主要使用兩個庫:pyExcelerator 和 xlrd。兩個庫雖然都具備讀寫excel文件的功能,但顯然是各有千秋,總結(jié)一下大概就是:pyExcelerator適合寫入數(shù)據(jù),而xlrd則適合讀取數(shù)據(jù)。
一、pyExcelerator庫的介紹
pyExcelerator讀取數(shù)據(jù)不方便,因為它不提供表格的行數(shù)、列數(shù)、單元格數(shù)據(jù)類型等關(guān)鍵信息的訪問接口,也不支持空數(shù)據(jù)的存在,因此你沒法對它進行循環(huán)操作。它讀取數(shù)據(jù)的機制是這樣的:sheets=parse_xls(filename) 這個sheets返回的是一個列表,每一項是一張sheet的數(shù)據(jù),每一項本身是一個二元組的數(shù)據(jù)結(jié)構(gòu)(表名,單元格數(shù)據(jù)),單元格數(shù)據(jù)又是一個字典結(jié)構(gòu),key是單元格的索引(i,j),value是單元格的數(shù)據(jù)??偨Y(jié)一下,如果你想獲取此excel文件的第N張工作表的第i行第j列的單元格數(shù)據(jù),則應(yīng)該是這樣:sheets[n][1][(i,j)]。
而當要將數(shù)據(jù)寫入excel時,我們就可以使用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版本,故使用時要注意處理的excel文件版本。
新聞熱點
疑難解答