反向删除行,但跳过标题行

时间:2019-11-07 18:47:56

标签: python python-3.x openpyxl

我正在尝试找到一种方法,使用openpyxl在Excel工作表中使用!=反向删除行,但跳过标题行1。

以下方法删除标题行,但我不确定如何添加跳过行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)

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

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

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)

enter image description here

2 个答案:

答案 0 :(得分:1)

ws['M']返回一个元组时,最简单的方法是忽略第一个元素:

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

答案 1 :(得分:0)

解决了:

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