繁体   English   中英

反向删除行但跳过 header 行

[英]Delete rows in reverse but skip header row

我试图找到一种方法来使用openpyxl在excel工作表中使用.=反向删除行,但跳过header第1行。

以下方式删除 header 行,我不知道如何添加跳过第 1 行:

for c in reversed(ws7['M']): 
    if c.value != 'Integration Live': 
        ws7.delete_rows(c.row)

我可以在下面以这种方式删除而无需反转,但无法弄清楚如何反转它,以便在删除过程中索引不会被弄乱(导致删除过程丢失了一些行)。

for row in ws7.iter_rows(min_col=13, max_col=13, min_row=2, max_row=None):
    if row[12].value != 'Integration Live':
        ws7.delete_rows(row[12].row)

关于如何在跳过 header 行时反向删除行的任何建议?

我已经尝试过了,但得到了一个例外:

for row in reversed(ws7.iter_rows(min_col=None, max_col=None, min_row=2, max_row=None)):
    if row[12].value != 'Integration Live':
        ws7.delete_rows(row[12].row)

在此处输入图像描述

由于ws['M']返回一个元组,最简单的事情是忽略第一个元素:

cells = ws['M'][1:]
for row in reversed(cells):
    …

解决了:

for c in reversed(ws7['M'][1:]):
    if c.value != 'Integration Live':
        ws7.delete_rows(c.row)

暂无
暂无

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

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