接口自动化(Python)-封装操作excel函数

知识点
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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值