Python 使用xlrd庫讀取excel

xlrd庫提供對excel的讀操作,下載地址爲https://pypi.python.org/pypi/xlrd,xlrd庫的安裝可以參考本文的另一篇博文http://blog.csdn.net/u011974126/article/details/51073076

1、打開excel文件

xlrd提供open_workbook()函數來打開excel文件,示例如下:

<span style="font-size:18px;">data=xlrd.open_workbook('E:\\telebook.xls')</span>
在使用xlrd的函數之前需要先先引用xlrd庫:

<span style="font-size:18px;">import xlrd</span>
如果excel中包含中文,需要設置編碼格式爲utf-8,Python3.x以上的版本不需要設置,Python3.x版本默認格式爲unicode,而Python2.x的默認格式爲ASCII,設置編碼格式的代碼爲:

<span style="font-size:18px;"> # -*- coding: utf-8 -*- </span>

2、讀取excel表

xlrd模塊提供三種方式讀取excel表,對應爲三個函數:sheets()、sheet_by_index()、sheet_by_name().

sheets()函數獲取該excel的所有sheet的清單,返回所有sheet表頭的列表。實驗圖如圖一所示:

要訪問某個具體的sheet,可以直接訪問列表sheets的元素即可。

由於telebook.xls中有三張sheet,因此上圖中列表sheets有三個元素。

sheet_by_index()函數通過索引號來獲取想要得到的sheet,返回類型爲Sheet的變量,實驗圖如圖二:

  

            圖二

從圖一和圖二中可以看到,圖二中的sheet1的值,正是圖一中列表sheets中的第一個元素。

sheet_by_name()函數通過sheet名來獲得想要的sheet,telebook.xls中第一張sheet的名爲Sheet1,下圖爲使用名字Sheet1來獲取第一張sheet。實驗圖如圖三所示。

圖三

從圖三中可以看到,通過名字sheet1訪問得到的與圖二中通過索引得到的sheet的結果一致。

3、讀取excel中的元素

xlrd提供函數獲得excel的行數和列數,以及逐行、逐列獲取表格的內容,並提供直接訪問表格單元的功能。

獲取sheet的行數:

<span style="font-size:18px;">nRows=sheet1.nrows</span>

獲得sheet的列數:

<span style="font-size:18px;">nCols=sheet1.ncols</span>

獲得整行的數據內容:

<span style="font-size:18px;">rowData=sheet1.row_values(i)#獲取第i行的數據內容</span>
獲得整列的數據內容:

<span style="font-size:18px;">colData=sheet1.col_values(i)#獲取第i列的數據內容</span>
圖四爲telebook.xls中第一行和第五列的訪問實驗圖:

圖四

xlrd庫還提供對excel表格單元的直接訪問。

<span style="font-size:18px;">cell15=sheet1.cell(i,j).value  #訪問單元格(i,j),第i行,第j列</span>

最後給出一個簡單的完整的訪問telebook.xls的元素並輸出的程序:

<span style="font-size:18px;"># -*- coding: utf-8 -*- 
import xlrd

data=xlrd.open_workbook('E:\\telebook.xls')
table=data.sheet_by_name('Sheet1')

nRow=table.nrows
nCol=table.ncols

print(nRow)
print(nCol)

list1=[]

for i in range(nRow):
    for j in range(nCol):
        print(i,j,str(table.row_values(i)[j]))
        </span>list1.append(str(table.row_values(i)[j]))


print('\n')
print(list1)
</span>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章