Xlrd模塊使用
excel文件樣例:

import xlrd
#實例化open_workbook()方法打開文件,返回的是一個Book對象
book = xlrd.open_workbook(r'F:\學習文件\Python文件\ZenDaoRobotTest\userinfo.xlsx')

#對Book對象進行操作
book.sheet_names() #獲取文件所有工作表名稱,以列表方式顯示


book.sheets() #獲取所有工作表的對象;通過索引獲取對應工作表的對象
book.sheets()[0] #通過索引獲取對應工作表的對象
book.sheet_by_index(0) #與以上效果一樣

book.sheet_by_name('第一頁') #通過工作表名稱獲取對應工作表對象


book.sheet_loaded(0) #通過索引判斷是否存在工作表,返回一個布爾值
book.sheet_loaded('第一頁') #通過名稱判斷是否存在工作表,返回一個布爾值


sheet1 = book.sheet_by_index(0) #獲取第一張工作表對象
sheet1.nrows #獲取對應工作表的有效行數
sheet1.ncols #獲取對應工作表的有效列數
sheet1.row_values(0) #獲取某一行的所有值,0為第一行,以列表形式展示
sheet1.col_values(0) #獲取某一列的所有值,0為第一列,以列表形式展示
sheet1.col_values(0,1,3) #獲取第一列,從第2個值開始到第4個值前結束,即為第3個值結束,‘3’為開區間,行同理

sheet1.row_slice(0,1,3) #以切片方式獲取第1行中,從第2列開始到第3列的值,返回的列表值形式為:單元類型:單元數據
sheet1.col_slice(0,1,3) #以切片方式獲取第1列中,從第2行開始到第3行的值


sheet1.cell(2,1) #獲取對應工作表中第3行,第2列中的單元對象,返回的列表值形式為:單元類型:單元數據
sheet1.cell_value(2,1) #獲取對應工作表中第3行,第2列的值
sheet1.cell_type(2,1) #獲取對應工作表中的值得類型,empty(為空)為0;string為1;number為2;date為3;boolean為4;error為5


參考實例:(獲取excel表中用戶名和密碼,以列表形式展示)
import xlrd import unittest import time import sys class Data_Excel(unittest.TestCase): file_path = r'F:\學習文件\Python文件\ZenDaoRobotTest\userinfo.xlsx'
def open_excel(self,file = file_path): try: self.book = xlrd.open_workbook(file) #打開excel文件返回Book對象
return self.book except Exception: print(file) pritn('error!') def excel_table_by_index(self,file = file_path,colnum = 0,sheet_name = '第一頁'): ''' file:默認文件路徑及名稱; colnum:默認第一行的值為表頭; sheet_name:默認讀取excel表中名稱為”第一頁“的工作表。 ''' self.book = xlrd.open_workbook(file) #打開excel文件返回Book對象
self.sheet1 = self.book.sheet_by_name(sheet_name) #獲取”第一頁“工作表對象
self.colnames = self.sheet1.row_values(colnum) #獲取第一行的值,作為表頭
self.nrows = self.sheet1.nrows #獲取表中的有效行數
list = [] #定義返回數據為列表形式
for rownum in range(1,self.nrows): #從第2行開始遍歷每行的數據
rowvalues = self.sheet1.row_values(rownum) if rowvalues: dictlist = {} #定義獲取的用戶信息為字典形式
for i in range(len(self.colnames)): #遍歷表頭值個數
dictlist[self.colnames[i]] = rowvalues[i] #將遍歷每行中的值賦值給對應的表頭值,並添加到dictlist字典中
list.append(dictlist) #將每個用戶信息字典添加到list列表中
print(list) return list a = Data_Excel() a.excel_table_by_index() if __name__ == '__main__': unittest.main()
如果想更深入研究Xlrd模塊的使用可查看模塊源碼: