编程语言
首页 > 编程语言> > Python-封装-excel-写-预期结果和实际结果对比并标注颜色

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