接口测试框架——第二篇-python读取excel文件内容
今天完善excel_module.py文件,上代码:
# coding: utf-8
import xlrd
class ReadExcel():
def __init__(self, file_name):
self.data = xlrd.open_workbook(file_name)
def close(self):
self.data.close()
def get_sheet_by_index(self, index):
'''
通过表的索引获取表格的内容
:param index: sheet的索引
:return: 返回sheet的内容
'''
__sheet = self.data.sheet_by_index(index)
return __sheet
def get_sheet_by_name(self, name):
'''
通过sheet名称获取表的内容
:param name: sheet名称
:return: 返回sheet对象
'''
__sheet = self.get_sheet_by_name(name)
return __sheet
def get_row_values(self, sheet_obj, row_index):
"""
获取指定行的内容
:param sheet_obj: 接收sheet对象
:param row_index: 行的索引
:return: 返回指定行的内容,类型为列表
"""
__values_list = sheet_obj.row_values(row_index)
return __values_list
def get_col_values(self, sheet_obj, col_index):
"""
获取指定列的内容
:param sheet_obj: 接收sheet对象
:param col_index: 列的索引
:return: 返回指定列的内容,类型为列表
"""
__values_list = sheet_obj.col_values(col_index)
return __values_list
def get_number_of_rows(self, sheet_obj):
"""
获取指定sheet行数
:param sheet_obj: 接收sheet对象
:return: 返回sheet总行数
"""
__number_of_rows = sheet_obj.nrows
return __number_of_rows
def get_number_of_cols(self, sheet_obj):
"""
获取指定sheet列数
:param sheet_obj: 接收sheet对象
:return: 返回sheet总列数
"""
__number_of_cols = sheet_obj.ncols
return __number_of_cols
def get_cell_value(self, sheet_obj, row_index, col_index):
"""
获取指定单元格的内容
:param sheet_obj: 接收sheet对象
:param row_index: 行索引
:param col_index: 列索引
:return: 返回单元格的内容
"""
__cell_value = sheet_obj.cell(row_index, col_index).value
return __cell_value
def get_all_content(self, sheet_obj):
"""
:param sheet_obj:
:return:
"""
__content = []
# 总行数
__rows_num = self.get_number_of_rows(sheet_obj)
for tmp in range(__rows_num):
tmp_list = []
# 遍历行内容
__row_value = self.get_row_values(sheet_obj, tmp)
for i in __row_value:
i = i.encode('utf8')
# 将每行内容放到一个列表里
tmp_list.append(i)
__content.append(tmp_list)
return __content
把读excel方法的单个方法提取出来,为的是后面调用的时候方便——面向对象的思想。具体方法的说明已经写的很清楚了。
如果你看不明白,那你就需要复习前面的内容了,
接口测试基础——第5篇xlrd模块 参考这一篇。
如果还是不明白,那就多百度吧,代码就是这么膈应人,慢慢来。如果有问题可以给我留言或者发公众号消息,船长看到后会第一时间回复大家。
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~