meylovezn 2019-12-17
一、安装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: 1 sheet_object: [<xlrd.sheet.Sheet object at 0x10a244a58>] By_name: <xlrd.sheet.Sheet object at 0x10a244a58> By_index: <xlrd.sheet.Sheet object at 0x10a244a58>
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: 6 col 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$1 AE