xlrd模块

导入模块

import xlrd

打开指定的excel文件,返回一个data对象

data = xlrd.open_workbook(file)                     #打开excel表,返回data对象

通过data对象可以得到各个sheet对象(一个excel文件可以有多个sheet,每个sheet就是一张表格)

Sheet1 = data.sheet_by_index(0)                    

#通过索引顺序获取   sheet_by_index(0)为第一个sheet  同理sheet_by_index(1)为第二个sheet 获取的sheet返回的是16进制地址

 # ,如:<xlrd.sheet.Sheet object at 0x000001FC8E966208>

Sheet1 = data.sheet_by_name(''sheet名称'')           

#通过名称获取     同上返回的sheet是一个16进制地址对象

Sheet1 = data.sheets()[0]                           #通过索引顺序获取    同第一个差不多,效果一样

num =data.nsheets                                   #返回sheet的数目

list = data.sheets()                                #返回所有sheet对象的列表

list = data.sheet_names()                           #返回所有sheet对象名字的列表

通过sheet对象可以获取各个单元格,每个单元格是一个cell对象

name = sheet1.name                  #返回sheet1的名称

nrows =sheet1.nrows                 #返回sheet1的行数

ncols = sheet1.ncols                #返回sheet1的列数

sheet1.cell_type(x,y)               #返回cell的对象类型      在python中的坐标都是从0开始的,譬如x=1,y=1 代表的是第2行第2列对应的单元格

sheet1.cell(x,y).ctype              #返回cell的对象类型

#python读取excel中单元格的内容返回的有5种类型。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。即date的ctype=3,这时需要使用 xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。

sheet1.cell_value(x,y)             

#返回cell的值    需要注意的是如果数据类型是 boolean型的返回的是1或者0  如果是data型的话返回的是一个数值,这就要用到上面的xldate_as_tuple                                                    方法了,cell1=xlrd.xldate_as_tuple(sheet1.cell_value(x,y) ,0) 转换成元组的形式展示 例如:转换后的cell1元组以这种形式展示   (2019, 9, 19, 0, 0, 0)

sheet1.cell(x,y).value          #返回cell的值

sheet1.row(x)                    #获取指定行,返回cell对象的列表   同时展示行中各cell对象的数据类型

sheet1.row_values(x)            #获取指定行,返回列表

sheet1.col(x)                     #获取指定列,返回cell对象的列表   同时展示列中各cell对象的数据类型

sheet1.col_values(x)                #获取指定列,返回列表   列中的内容

 

上一篇:unittest数据驱动


下一篇:关于xlrd不支持xlsx格式的解决办法