Xlrd模塊讀取Excel文件數據


 

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模塊的使用可查看模塊源碼:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM