Python-封装-excel-写-预期结果和实际结果对比并标注颜色
作者:互联网
写一个excel,4列:编号,预期结果,实际结果,执行结果。然后预期结果和执行结果写入相同或不同的值,作比较,相同的值则执行结果通过,否则失败,并且用不同的颜色标注,在第四列写入对应的结果
总共2个表
第一个表:生成表和数据
#第一步:新建一个表 import openpyxl wb=openpyxl.Workbook() wb.save('zuoye.xlsx') #第二步:插入一个sheet表 import openpyxl wb=openpyxl.load_workbook('zuoye.xlsx') wb.create_sheet('bijiao',0) wb.save('zuoye.xlsx') #第三步:插入3列表头 import openpyxl wb=openpyxl.load_workbook('zuoye.xlsx') sh=wb['bijiao'] sh.cell(row=1,column=1).value='编号' sh['B1']='预期结果' sh['C1']='实际结果' wb.save('zuoye.xlsx') #第四步:插入列表 import openpyxl wb=openpyxl.load_workbook('zuoye.xlsx') sh=wb['bijiao'] list=[[1,'a','b'],[2,'a','a'],[3,'a','b'],[4,'b','b'],[5,'b','a'],[6,'b','c']] for row in list: sh.append(row) wb.save('zuoye.xlsx') #第五步:插入最后一个表头执行结果 import openpyxl wb=openpyxl.load_workbook('zuoye.xlsx') sh=wb['bijiao'] sh['D1']='执行结果' wb.save('zuoye.xlsx')
第二个表:封装运算
import os import openpyxl from openpyxl.styles import Font class ZuoYe: def __init__(self): self.wb = None self.sh = None self.filename = None self.lines=[] #打开表 def open_excel(self,filename): if os.path.isfile(filename): if filename.endswith('xlsx'): self.wb = openpyxl.load_workbook(filename) self.filename = filename print('excel文件打开成功') else: print('文件名后缀不正确') return else: print('传入的参数不正确,请检查!') return #找到sheet页 def choose_sheet(self, sheet_name): if sheet_name in self.wb.sheetnames: self.sh = self.wb[sheet_name] #值和值之间对比 def Compare_b_c(self): i=2 while True: if self.sh['B' + str(i)].value==None and self.sh['C' + str(i)].value == None: break if self.sh['B'+str(i)].value==self.sh['C'+str(i)].value: self.sh['D'+str(i)]='通过' color = '0000FF' font=Font(color=color) self.sh['D'+str(i)].font = font else: self.sh['D'+str(i)]='失败' color = 'FFFF00' font = Font(color=color) self.sh['D' + str(i)].font = font i+=1 def save_excel(self,filename=None): if filename is None: self.wb.save(self.filename) else: self.wb.save(filename) a=ZuoYe() a.open_excel('zuoye.xlsx') a.choose_sheet('bijiao') a.Compare_b_c() a.save_excel()
标签:xlsx,封装,wb,Python,self,excel,filename,sh,openpyxl 来源: https://www.cnblogs.com/actionnow/p/16167589.html