[英]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 的行現在也是 20符合條件,該行不會被刪除,因為 for 循環已經掃描了第 20 行並且無法返回。
我該如何解決這個問題? 可以將行放在列表中然后刪除它們可能有效嗎? 還是會導致同樣的問題? 提前致謝
從底部開始,一路向上!
for rowNum in range(sheet.max_row, 1, -1):
if sheet.cell...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.