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