遍历 Excel 行并根据满足的条件删除的最佳方法

Best way to iterate through Excel rows and delete based on met criteria

所以我有一个非常简单的 for 循环,如果第 9 列中的值等于员工姓名,则删除行:

import openpyxl, os

wb = openpyxl.load_workbook('Opportunities.xlsx', data_only=True)
sheet = wb['OpportunityList']

for rowNum in range(2, sheet.max_row):
    if sheet.cell(row = rowNum, column = 9).value == 'Employee Name':
        print('Deleting row ' + str(rowNum))
        sheet.delete_rows(rowNum)

wb.save('1.xlsx')

我遇到的问题是假设第 20 行符合条件并被删除,那么第 21 行现在变成第 20 行。因此 for 循环将以 rowNum 21 进行,如果该行曾经是 21 and is now 20 也符合条件,那么该行不会被删除,因为 for 循环已经扫描了第 20 行并且无法返回。

如何解决这个问题?可以将行放在列表中然后删除它们可能有效吗?或者这会导致同样的问题吗?提前致谢

从底部开始,逐步向上!

for rowNum in range(sheet.max_row, 1, -1):
    if sheet.cell...