python 操作excel openpyxl

from openpyxl import load_workbook
from common.contants import case_file

class ReadExcel:    
	def __init__(self,filename,sheetname=None):        
		self.filename=filename        
		self.sheetname=sheetname   
        
	def get_cases(self):        
	'''获取所有测试用例'''        
		wb=load_workbook(self.filename)       #打开指定文件 
		if self.sheetname is None: #判断是否是None,不要用==,要用is   
        	ws=wb.active        #默认激活第一页
        else:            
        	ws=wb[self.sheetname]   #打开sheet页
            
        header_data=tuple(ws.iter_rows(max_row=1))[0] # 获取表头信息,转为元组
        other_data=tuple(ws.iter_rows(min_col=2))#获取其他行数据,转为元组    
        test_data=[]        
        for data in other_data: #将两个元组合成字典,返回嵌套字典的列表
        	data_dict=dict(zip(header_data,data))            
        	test_data.append(data_dict)        
        return test_data    
       
   def get_row_data(self,row):        
   '''获取某一行数据'''        
       return self.get_cases()[row-1]    
   
   def write_data(self,row,actual,result):        
   '''将数据写入excel'''
       wb=load_workbook(self.filename)        
   	   if self.sheetname is None: #判断是否是None,不要用==,要用is            
   	       ws=wb.active        
       else:            
   		   ws=wb[self.sheetname]     
        
       if isinstance(row,int) and 2 <=row <= ws.max_row:
           ws.cell(row=row,column=6,values=actual)  
           ws.cell(row=row,column=7,value=actual)            
   	       ws.save(self.filename)        
       else:            
   		   print('传入的行号有误,行号应为大于1的整数!')
   		
if __name__ =="__main__":    
	filename=case_file    
    print(ReadExcel(filename).get_row_data(3))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值