Aug-21-2023, 07:15 PM
Change to this and see if it is better.
Take look at what zip do,then will understand the loop better.
Take look at what zip do,then will understand the loop better.
import openpyxl from openpyxl.styles import PatternFill datafile1 = openpyxl.load_workbook('test1.xlsx') fill_style1 = PatternFill(start_color='FDD835', end_color='FDD835', fill_type='solid') fill_style2 = PatternFill(start_color='cc0000', end_color='cc0000', fill_type='solid') data_sheet1 = datafile1['Sheet1'] data_sheet2 = datafile1['Sheet2'] # Create a new sheet for comparison results comparison_sheet = datafile1.create_sheet('Comparison Results') # Iterate through rows in both sheets and compare values for row1, row2 in zip( data_sheet1.iter_rows(min_row=1, max_row=data_sheet1.max_row), data_sheet2.iter_rows(min_row=1, max_row=data_sheet2.max_row), ): for cell1, cell2 in zip(row1, row2): if cell1.value == cell2.value: comparison_sheet.cell(row=cell1.row, column=cell1.column, value=1).fill = fill_style1 else: comparison_sheet.cell(row=cell1.row, column=cell1.column, value=0).fill = fill_style2 datafile1.save('compared_file.xlsx')