Некорректное удаление строки по ее номеру в openpyxl

пытаюсь удалить выбранные строки по их номерам, некоторые строки не удаляются, а некоторые столбцы начинают смещаться

from openpyxl import load_workbook
rowsList = [1,3,5,6,8,10]
wb = load_workbook('путь к файлу.xlsx')
currentSheet = wb.worksheets[0]
for i in rowsList:
    currentSheet.delete_rows(i)
wb.save('путь к файлу.xlsx')

Ответы (2 шт):

Автор решения: Danis

Вы удаляете элемент, и все элементы которые находится слева от удалённого смещаются в лево.

from openpyxl import load_workbook

rowsList = [1,3,5,6,8,10]
wb = load_workbook('путь к файлу.xlsx')
currentSheet = wb.worksheets[0]

j = 0
for i in rowsList:
    currentSheet.delete_rows(i - j) 
    j += 1
wb.save('путь к файлу.xlsx') 
→ Ссылка
Автор решения: Интик

чтобы удаление произошло коррекно, нужно использовать reversed(rowsList).

from openpyxl import load_workbook

rowsList = [1,3,5,6,8,10]
wb = load_workbook('путь к файлу.xlsx')
currentSheet = wb.worksheets[0]

for i in reversed(rowsList):
    currentSheet.delete_rows(i)
wb.save('путь к файлу.xlsx')
→ Ссылка