繁体   English   中英

Excel 行未使用 openpyxl 删除

[英]Excel rows not getting deleted using openpyxl

我正在尝试删除 excel 行(如果它们为零)。 很少有行被删除,但我确实看到更多行没有被删除。 下面是代码。 对此有任何了解。

for row in range(2, sheet2.max_row+1):
    cell2 = sheet2.cell(row, 15)
    if cell2.value == 0:
        sheet2.delete_rows(row, 1)
        print(f"THe cell valaue is {row} {cell2.value}")

wb2.save('New_Overhead_cal.xlsx')

一个更新...当我在保存 excel 文件之前复制并粘贴 for 循环 5 次时,行被删除。 所以这意味着删除后行是否移动导致了这个问题?

因为每次删除一行,当你的行计数器向前移动时,行的 rest 向上移动,导致你的 for 循环丢失一些项目。 正如@Scott Craner 所建议的那样,向后循环应该可行。

当您尝试在使用 for 循环时从数组中删除某些内容时,会发生同样的问题。

for row in range(sheet2.max_row, 1, -1):
    cell2 = sheet2.cell(row, 15)
    if cell2.value == 0:
        sheet2.delete_rows(row, 1)
        print(f"THe cell valaue is {row} {cell2.value}")

你也可以用while来做。

row = 2
while(row <= sheet2.max_row):
    cell2 = sheet2.cell(row, 15)
    if cell2.value == 0:
        sheet2.delete_rows(row, 1)
        print(f"THe cell valaue is {row} {cell2.value}")
    else:
        row += 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM