在用例知道了以后,首先我们考虑怎么样来操作这个Excel表。拿到这个表的内容。
其中内容包括:行数,列数,单元格的内容等等。
主要运用到Python的xlrd,xlutils.copy的库。
在开始我们操作表,需要一个表的地址,拿到表。
file_name = "../dataconfig/case.xls"
data = xlrd.open_workbook(file_name)
tables = data.sheets()[sheet_id] #sheet_id需要传进去
return tables
这段代码可以放进 __init__里面,重构一下,构造一个拿到表数据的方法。因为后面所有的方法都需要打开文件。
#获取单元格的行数 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 ''' read_data = xlrd.open_workbook(self.file_name) write_data = copy(read_data) sheet_data = write_data.get_sheet(0) sheet_data.write(row,col,value) write_data.save(self.file_name) #根据对应的caseid 找到对应行的内容 def get_rows_data(self,case_id): 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 clols_data = self.get_cols_data() for col_data in clols_data: if case_id in col_data: return num num = num+1 #根据行号,找到该行的内容 def get_row_values(self,row): tables = self.data row_data = tables.row_values(row) return row_data #获取某一列的内容 def get_cols_data(self,col_id=None): if col_id != None: cols = self.data.col_values(col_id) else: cols = self.data.col_values(0) return cols