簡體   English   中英

遍歷 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 的行現在也是 20符合條件,該行不會被刪除,因為 for 循環已經掃描了第 20 行並且無法返回。

我該如何解決這個問題? 可以將行放在列表中然后刪除它們可能有效嗎? 還是會導致同樣的問題? 提前致謝

從底部開始,一路向上!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM