1. 程式人生 > 其它 >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()