以前研究過 pyExcelerator庫和xlrd庫,時間久了,記不太清。看到如下文章,很是和我當時的研究的狀況,故記下備查。python
原文:http://blog.csdn.net/menuconfig/article/details/8672963數據結構
Python處理excel文件主要使用兩個庫:pyExcelerator 和 xlrd。兩個庫雖然都具有讀寫excel文件的功能,但顯然是各有千秋,總結一下大概就是:pyExcelerator適合寫入數據,而xlrd則適合讀取數據。post
1、pyExcelerator庫的介紹.net
pyExcelerator讀取數據不方便,由於它不提供表格的行數、列數、單元格數據類型等關鍵信息的訪問接口,也不支持空數據的存在,所以你無法對它進行循環操做。它讀取數據的機制是這樣的:sheets=parse_xls(filename) 這個sheets返回的是一個列表,每一項是一張sheet的數據,每一項自己是一個二元組的數據結構(表名,單元格數據),單元格數據又是一個字典結構,key是單元格的索引(i,j),value是單元格的數據。總結一下,若是你想獲取此excel文件的第N張工做表的第i行第j列的單元格數據,則應該是這樣:sheets[n][1][(i,j)]。excel
而當要將數據寫入excel時,咱們就可使用pyExcelerator來操做,很方便,一些操做示例:code
from pyExcelerator import * w=Workbook() #建立工做簿 ws=w.add_sheet('Sheet1') #添加工做表 ws.write(i,j,value) #寫入單元格 w.save('book.xls')
2、xlrd庫的介紹blog
相比之下,xlrd庫讀取數據則要方便的多,下面是一些使用範例:索引
import xlrd wb = xlrd.open_workbook('book.xls') #打開文件 sh = wb.sheet_by_index(0) #得到工做表的方法1 sh = wb.sheet_by_name('Sheet1') #得到工做表的方法2 cellA1Value = sh.cell_value(i, j) #得到單元格數據 columnValueList = sh.col_values(i) #得到一列的數據 row_count=sh.nrows #得到行數 col_count=sh.ncols #得到列數
但須要注意的是:xlrd庫目前彷佛還不支持excel2007版本,故使用時要注意處理的excel文件版本。接口