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

猜你喜欢

转载自www.cnblogs.com/Archer-Xin/p/12142417.html