# # test_sample.py
# import pytest
# @pytest.fixture()
# def is_odd(request):
# print('Now the parameter are:--{}\n'.format(request.param))
# if int(request.param) % 2 == 0:
# return False
# else:
# return True
#
# @pytest.mark.parametrize("is_odd", [1, 2], indirect=True)
# def test_is_odd(is_odd):
# if is_odd:
# print("is odd number")
# else:
# print("is not odd number")
#
#
# if __name__ == "__main__":
# pytest.main([])
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# from openpyxl import load_workbook
# def test_readExcel():
# # wb = load_workbook('C:/Users/Administrator/Desktop/test.xlsx')
# wb = load_workbook('./test.xlsx')
# # 获得所有sheet的名称
# print(wb.get_sheet_names())
# # 根据sheet名字获得sheet
# a_sheet = wb.get_sheet_by_name('Sheet1')
# # 获得sheet名
# print(a_sheet.title) #Sheet1
# # 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
# sheet = wb.active
# print('当前正在显示的sheet---', sheet)
#
# print('通过worksheet.cell获取所有数据方法:')
# for i in range(1, a_sheet.max_row+1):
# for j in range(1, a_sheet.max_column+1):
# print(a_sheet.cell(row=i, column=j).value,end=' ')
# print('\n')
# 导入模块
import xlrd
def test_readExcel():
# 打开文件方式1:
work_book = xlrd.open_workbook('test.xlsx')
print('打印所有Sheets的个数:',work_book.nsheets)
sheets = work_book.sheets()
print('打印所有Sheets的地址:',sheets)
# 获取工作簿所有sheet表对象名称
sheets_name = work_book.sheet_names()
print('获取工作簿所有sheet表对象名称:',sheets_name)
# 按索引获取sheet对象
sheet_1 = work_book.sheet_by_index(0)
print('按索引获取sheet对象',sheet_1)
# 按sheet表名称获取sheet对象,名称分大小写
sheet_2 = work_book.sheet_by_name('Sheet2')
print('按sheet表名称获取sheet对象,名称分大小写:',sheet_2)
# 获取sheet表单元格对象,单元格数据类型:单元格值
cell0 = sheet_1.cell(1,1)
print('cell0',cell0,'type',type(cell0))
#cell0 text:'女' type
# 获取sheet表单元格值
cell_0_value = sheet_1.cell_value(1, 1)
print('cell_0_value',cell_0_value,'type',type(cell_0_value))
# cell_0_value 女 type
# 获取单元格类型
cell_0_type = sheet_1.cell_type(1, 1)
print('获取单元格类型:',cell_0_type)
# 获取sheet表对象有效行数
row_sum = sheet_1.nrows
print('获取sheet表对象有效行数:',row_sum)#获取sheet表对象有效行数: 3
# 获取sheet表某一行长度
row_len = sheet_1.row_len(0)
"def row_len(self, rowx):"
print('获取sheet表某一行长度',row_len)#获取sheet表某一行长度 2
# 获取sheet表某一行所有数据类型及值
row_0 = sheet_1.row(0)
"def row(self, rowx):"
print('获取sheet表某一行所有数据类型及值',row_0,'type(row_0):',type(row_0))
#获取sheet表某一行所有数据类型及值 [text:'姓名', text:'性别'] type(row_0):
# 获取某一行对象的值,可指定开始结束列
row_0_s = sheet_1.row_slice(0, 0, 1)
"def row_slice(self, rowx, start_colx=0, end_colx=None):"
print('获取某一行对象的值,可指定开始结束列',row_0_s)
#获取某一行对象的值,可指定开始结束列: [text:'姓名', text:'性别']
# 获取sheet表对象某一行数据类型,返回一个数组对象
row_0_type = sheet_1.row_types(0,0)
"def row_types(self, rowx, start_colx=0, end_colx=None):"
print('获取sheet表对象某一行数据类型,返回一个数组对象',row_0_type)
# 获取sheet表对象某一行数据值
row_0_value = sheet_1.row_values(1)
"def row_values(self, rowx, start_colx=0, end_colx=None):"
print('获取sheet表对象某一行数据值:',row_0_value,'type(row_0_value):',type(row_0_value))
# 获得sheet对象所有行对象生成器
rows = sheet_1.get_rows()
print('获得sheet对象所有行对象生成器:',rows)
#获得sheet对象所有行对象生成器: . at 0x0000023EC32E6960>
#获得每行对象的数据类型和值
for row in rows:
print('row:',row)
#row: [text:'姓名', text:'性别']
#row: [text:'张三', text:'女']
#row: [text:'李四', text:'男']
# 获取sheet表有效列数
col_sum = sheet_1.ncols
print('获取sheet表有效列数:',col_sum)
#获取sheet表有效列数: 2
# 获取列对象
# #################### 该方法好像有问题... ####################3
cell_0 = sheet_1.col_slice(0)
"def col_slice(self, colx, start_rowx=0, end_rowx=None):"
print('获取列对象:',cell_0)
#获取列对象: [text:'姓名', text:'张三', text:'李四']
# 获取某一列的值
col_0_value = sheet_1.col_values(0)
"def col_values(self, colx, start_rowx=0, end_rowx=None):"
print('获取某一列的值:',col_0_value)
#获取某一列的值: ['姓名', '张三', '李四']
# 获取某一列的数据类型
col_0_type = sheet_1.col_types(0)
"def col_types(self, colx, start_rowx=0, end_rowx=None):"
print('获取某一列的数据类型:',col_0_type)
# 按行读取
data_row = []
for row in range(sheet_1.nrows):
data_row.append(sheet_1.row_values(row))
print('按行读取:',data_row,'type(data_row):',type(data_row))
#按行读取: [['姓名', '性别'], ['张三', '女'], ['李四', '男']] type(data_row):
# 按列读取
data_col = [sheet_1.col_values(i) for i in range(sheet_1.ncols)]
print('按列读取:',data_col,'type(data_col):',type(data_col))
#按列读取: [['姓名', '张三', '李四'], ['性别', '女', '男']] type(data_col):
# 按行读取test.xlsx所有sheet表数据
all_data = {}
for i, sheet_obj in enumerate(work_book.sheets()):
all_data[i] = [sheet_obj.row_values(row)
for row in range(sheet_obj.nrows)]
print('按行读取test.xlsx所有sheet表数据:',all_data)
#按行读取test.xlsx所有sheet表数据: {0: [['姓名', '性别'], ['张三', '女'], ['李四', '男']], 1: [], 2: []}
# 按列读取test.xlsx所有sheet表数据
all_data = {}
for i, sheet_obj in enumerate(work_book.sheets()):
all_data[i] = [sheet_obj.col_values(row)
for row in range(sheet_obj.ncols)]
print('按列读取test.xlsx所有sheet表数据:',all_data)
#按列读取test.xlsx所有sheet表数据: {0: [['姓名', '张三', '李四'], ['性别', '女', '男']], 1: [], 2: []}