知识点
xlrd:Python语言中,读取Excel的扩展工具
Python构造函数:主要用于在类的对象创建时定义初始化的状态
xlutils.copy:复制读取的excel
#coding:utf-8
import xlrd
from xlutils.copy import copy
class OperationExcel:
def __init__(self,file_name=None,sheet_id=None):
#传入参数有file_name,sheet_id就对应赋值
if file_name:
self.file_name = file_name
self.sheet_id = sheet_id
#没有传入参数则读取下方默认赋值
else:
self.file_name = '../xx/xx.xls'
self.sheet_id = 0
#获取表格内容
self.data = self.get_data()
#获取sheets的内容
def get_data(self):
#打开excel表
data = xlrd.open_workbook(self.file_name)
#获取指定sheet表格内容
tables = data.sheets()[self.sheet_id]
return tables
#获取单元格的行数
def get_lines(self):
tables = self.data
return tables.nrows
#获取某一个单元格的内容
def get_cell_value(self,row,col):
return self.data.cell_value(row,col)
#写入数据
def write_value(self,row,col,value):
'''
写入excel数据
row,col,value
'''
#获取excel
read_data = xlrd.open_workbook(self.file_name)
#复制数据
write_data = copy(read_data)
#获取excel的sheet数据
sheet_data = write_data.get_sheet(0)
#拿到sheet数据进行写结果
sheet_data.write(row,col,value)
#保存写入的数据
write_data.save(self.file_name)
#根据对应的caseid 找到对应行的内容
def get_rows_data(self,case_id):
#找到caseid行号
row_num = self.get_row_num(case_id)
#获取该行内容
rows_data = self.get_row_values(row_num)
return rows_data
#根据对应的caseid找到对应的行号
def get_row_num(self,case_id):
num = 0
#获取第一列的数据
cols_data = self.get_cols_data()
#找对应caseid的行号
for col_data in cols_data:
if case_id in col_data:
return num
num = num+1
#根据行号,找到该行的内容
def get_row_values(self,row):
#获取用例的数据
tables = self.data
#根据row值获取用例行的内容
row_data = tables.row_values(row)
return row_data
#获取某一列的内容
def get_cols_data(self,col_id=None):
#传入col_id则对应赋值
if col_id != None:
cols = self.data.col_values(col_id)
#没有传入值,就是默认值
else:
cols = self.data.col_values(0)
return cols
if __name__ == '__main__':
opers = OperationExcel()
print(opers.get_cell_value(1,2))
参考:https://www.bilibili.com/video/BV1Ub411j7SY?p=41