Итак, у меня есть очень простой цикл 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, а теперь 20, также соответствовала критериям, то эта строка не будет удалена, посколькуцикл for уже отсканировал строку 20 и не может вернуться назад.
Как мне решить эту проблему?Может ли помещение строк в список, а затем их удаление, возможно, сработать?Или это вызовет ту же проблему?Заранее спасибо