转载
xlrd
导入模块
import xlrd
2、打开指定的excel文件,返回一个data对象
data = xlrd.open_workbook(file) #打开excel表,返回data对象
3、通过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的展示表名
4、通过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) #获取指定列,返回列表 列中的内容