一、安装xlrd模块
二、常用方法
1、导入模块
import xlrd
2、打开文件
x1 = xlrd.open_workbook("testCase.xlsx")
3、获取sheet
print('sheet_names:', x1.sheet_names()) #获取所有sheet名字
print('sheet_number:', x1.nsheets) #获取sheet数量
print('sheet_object:', x1.sheets()) #获取所有sheet对象
print('By_name:', x1.sheet_by_name("case")) #通过sheet名查找
print('By_index:', x1.sheet_by_index(0)) #通过索引查找
输出:
sheet_names: ['case']
sheet_number:1sheet_object: []
By_name:By_index:
4、获取sheet的汇总数据
sheet1 = x1.sheet_by_name("case")print("sheet name:", sheet1.name) #get sheet name
print("row num:", sheet1.nrows) #get sheet all rows number
print("col num:", sheet1.ncols) #get sheet all columns number
输出:
sheet name: case
row num:6col num:4
5、单元格批量读取
行操作:
print(sheet1.row_values(0)) #获取第一行所有内容,合并单元格,首行显示值,其它为空。
print(sheet1.row(0)) #获取单元格值类型和内容
print(sheet1.row_types(0)) #获取单元格数据类型
输出:
['用户ID', '积分', '下发原因', '部门']
[text:'用户ID', text:'积分', text:'下发原因', text:'部门']
array('B', [1, 1, 1, 1])
列操作:
print(sheet1.row_values(0, 1, 3)) #取第1行,第1~3列(不含第3列)
print(sheet1.col_values(0, 0, 5)) #取第1列,第0~5行(不含第5行)
print(sheet1.row_slice(2, 0, 2)) #获取单元格值类型和内容,同sheet1.row(0)
print(sheet1.row_types(1, 0, 2)) #获取单元格数据类型
输出:
['积分', '下发原因']
['用户ID', '1611504', '1611504', '1611504', '1611504']
[text:'1611504', text:'0']
array('B', [1, 1])
6、特定单元格读取
#取值
print(sheet1.cell_value(1, 2))print(sheet1.cell(1, 2).value)print(sheet1.row(1)[2].value)#取类型
print(sheet1.cell(1, 2).ctype)print(sheet1.cell_type(1, 2))print(sheet1.row(1)[2].ctype)
输出:
返现
返现
返现1
1
1
7、(0,0)转换A1
print(xlrd.cellname(0, 0)) #(0,0)转换成A1
print(xlrd.cellnameabs(0, 0)) #(0,0)转换成$A$1
print(xlrd.colname(30)) #把列由数字转换为字母表示
输出:
A1
$A$1AE
8、数据类型:
空:0
字符串:1
数字:2
日期:3
布尔:4
error:5
#导入模块
importxlrd#读取到excel文件
data = xlrd.open_workbook("student.xlsx")#获取列表
table =data.sheet_by_index(0)#获取所有的行数
nrows =table.nrows#获取所有的列数
ncols =table.ncols#获取第一行的数据
first_row_name_list =table.row_values(0)print(first_row_name_list)#定义一个列表保存所有行的数据
info_list =[]#遍历所有行
for rownum in range(1, nrows):#获取
row =table.row_values(rownum)#如果row有数据
ifrow:
info_list.append(row)print(info_list)
完