pyExcelerator庫和xlrd庫

jopen 9年前發布 | 13K 次閱讀 Python開發 pyExcelerator

之前研究過 pyExcelerator庫和xlrd庫,時間久了,記不太清。看到以下文章,非常和我當時的研究的情況,故記下備查。

原文:http://blog.csdn.net/menuconfig/article/details/8672963

Python處理excel文件主要使用兩個庫:pyExcelerator 和 xlrd。兩個庫雖然都具備讀寫excel文件的功能,但顯然是各有千秋,總結一下大概就是:pyExcelerator適合寫入數據,而xlrd則適合讀取數據。

一、pyExcelerator庫的介紹

pyExcelerator讀取數據不方便,因為它不提供表格的行數、列數、單元格數據類型等關鍵信息的訪問接口,也不支持空數據的存在,因此你沒法對它進行循環操作。它讀取數據的機制是這樣的:sheets=parse_xls(filename)  這個sheets返回的是一個列表,每一項是一張sheet的數據,每一項本身是一個二元組的數據結構(表名,單元格數據),單元格數據又是一個字典結構,key是單元格的索引(i,j),value是單元格的數據。總結一下,如果你想獲取此excel文件的第N張工作表的第i行第j列的單元格數據,則應該是這樣:sheets[n][1][(i,j)]。

而當要將數據寫入excel時,我們就可以使用pyExcelerator來操作,很方便,一些操作示例:

from pyExcelerator import *
w=Workbook()  #創建工作簿
ws=w.add_sheet('Sheet1')  #添加工作表
ws.write(i,j,value)  #寫入單元格   
w.save('book.xls')

二、xlrd庫的介紹

相比之下,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文件版本。


http://newliu.com/post/16/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!