openpyxl delete_rows 删除行结果不对

用openpyxl 删除excel 表里第一列不是天翼的行

一行一行的删我知道,就是想有没有办法几行一起删

import openpyxl
wb = openpyxl.load_workbook("F:\desk\拆\检查.xlsx")
ws=wb.active
n=0
m=0
for i in ws['A'][::-1]:
if n==0 and i.value!='天翼':
n=i.row
elif n>0 and i.value=='天翼':
m=i.row+1
print(m,n)
ws.delete_rows(m,n) #每次都把m行开始下面所有的行删除了
n=0
m=0
wb.save("F:\desk\检查2.xlsx")

#每次都把m行开始下面所有的行删除了

img

img

print的值输出截个图,你这个代码明显从1开始,所以0之后的行应该都是被删了的

你print(m,n)打印的m和n的值是多少

有用的话请点一下采纳,谢谢

import openpyxl
wb = openpyxl.load_workbook("F:\desk\拆\检查.xlsx")
ws=wb.active
for i in ws['A']:
    if i.value!='天翼':
        n=i.row
        ws.delete_rows(n) #每次都把m行开始下面所有的行删除了
wb.save("F:\desk\检查2.xlsx")

这个代码是缩进的问题,代码给你调整了一下和你原来的一样,缩进调整了一下就好了

import openpyxl
wb = openpyxl.load_workbook("F:\desk\拆\检查.xlsx")
ws = wb.active
n = 0
m = 0
for i in ws['A'][::-1]:
    if n == 0 and i.value != '天翼':
        n = i.row
    elif n > 0 and i.value == '天翼':
        m = i.row+1
        print(m, n)
        ws.delete_rows(m, n)  # 每次都把m行开始下面所有的行删除了
        n = 0
        m = 0
wb.save("F:\desk\检查2.xlsx")