![](https://csdnimg.cn/release/download_crawler_static/87485354/bg5.jpg)
'''
os.chdir(r'/Users/rffagl100rffagl100/Documents/pyproject/testexcel') # 修改工作路径
workbook = xlrd.open_workbook(filename='data.xlsx') # filename 是文件的路径名称
table = workbook.sheet_by_index(0) # 通过索引顺序获取第一个工作表
'''
获取需要操作的 sheet 表格(有三种方法)
①通过索引获取 table = workbook.sheets()[0]
②通过索引顺序获取 table = workbook.sheet_by_index(0)
③通过 sheet 名称获取 table = workbook.sheet_by_name(sheet_name='Sheet1')
补充:获取工作薄中所有 sheet 名称 names = workbook.sheet_names() --->['Sheet1', 'Sheet2', 'Sheet3']
Book(class) 由 xlrd.open_work("example.xls")返回
nsheets: sheets 数
sheet_names: sheet 名称列表
sheets: sheet 列表
sheet_by_index(sheetx): 按序号提取 sheet
sheet_by_name(sheet_name): 按名称提取 sheet
Sheet(class) 由 Book object 相关方法返回
name: sheet 名
nrows: 行数
ncols: 列数
cell(rowx,colx): 第 rows 行 colx 列的单元格
cell_type(rowx,colx): 数据类型
cell_value(rows,colx): 数值
col(colx): 第 colx 列所有单元格组成的列表
col_slice(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格组成的列表
col_types(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格数值类型组成的列表
col_values(colx,start_rowx=0,end_rowx=None): 第 colx 列指定单元格数值组成的列表
row 同样有 col 的各项操作,此处略去
Cell(class) 由 Sheet object(s)相关方法返回
ctype: 一个 int 型变量,对应不同的数值类型
value: 单元格的值
'''
# 获取 sheet 中有效行数,有效列数,返回该行的有效单元格长度
print(table.nrows, table.ncols, table.row_len(0)) # ---> 5 4 4
# 获取指定行或者列中所有的数据
# 获取指定行中的数据并以列表的形式返回: rowx 表示是获取第几行的数据; start_col 表示从索引为多少开始; end_colx 表示从索引为多少结束,end_colx
为 None 表示结束没有限制
table_list = table.row_values(rowx=1, start_colx=1, end_colx=None) # --->['A1', 'B1', 'C1']
print(table_list)
print(table.row(0)) # 返回由该行中所有的单元格对象组成的列表 # ---> [text:'number', text:'A', text:'B', text:'C']
print(table.row_slice(1)) # 返回由该行中所有的单元格对象组成的列表 # ---> [number:1.0, text:'A1', text:'B1', text:'C1']
print(table.row_types(0, start_colx=0, end_colx=None)) # 返回由该行中所有单元格的数据类型组成的列表 # ---> array('B', [1, 1, 1, 1])
# row 同样有 col 的各项操作.获取指定列中的数据并以列表的形式返回: colx 表示是获取第几列的数据; start_rowx 表示从索引为多少开始; end_rowx 表
示从索引为多少结束,end_rowx 为 None 表示结束没有限制