簡體   English   中英

如果單元格值的年份小於特定年份,則刪除 Excel 行

[英]Deleting an Excel Row if the year of the cell value is less than a specific year

我正在嘗試使用日期值迭代特定單元格並刪除日期的年份值小於 2020 的行。

我可以使用 .year 方法獲取年份,並且可以找到滿足我的整數語句的單元格的行號,但是當我使用 .delete_rows() 方法時,我得到一個回溯錯誤說明

AttributeError: 'NoneType' 對象沒有屬性 'year'

此代碼有效並為我提供年份值小於 2020 的單元格的行號

sheet = wb['Sheet1']
maxColumn = sheet.max_column
maxRow = sheet.max_row

for row in range(2, maxRow):
    cell = sheet.cell(row,4)
    cell_year = cell.value.year
    if cell_year < 2020:
        print(row)

但這給了回溯:

sheet = wb['Sheet1']
maxColumn = sheet.max_column
maxRow = sheet.max_row

for row in range(2, maxRow):
    cell = sheet.cell(row,4)
    cell_year = cell.value.year
    if cell_year < 2020:
        sheet.delete_rows(row)

我知道我可以創建一個包含行號的列表並創建另一個循環來刪除那些選定的行,但我想知道我的錯誤是什么。

如果您能幫助我解決這個問題,我將不勝感激。

我認為您面臨的問題是您針對數據集的大小重復您的過程,然后減少數據集的骰子,以便您的程序嘗試對不存在的行進行更改。 要解決此問題,我建議您首先將要刪除的行數添加到數組中,然后循環遍歷該數組並刪除行。

暫無
暫無

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

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