Python 如果所有单元格都包含某个值,如何删除整行?

Python 如果所有单元格都包含某个值,如何删除整行?,python,openpyxl,Python,Openpyxl,我尝试删除Excel工作表中的所有行,这些行满足以下条件:行中的所有单元格必须仅包含“-”或“”值 我使用Python和openpyxl 但我的代码不太好用: import openpyxl wb1 = openpyxl.load_workbook(filename="testat_openpyxl.xlsx") instr="" for i in range(5, wb1["Centralizator"].max_row): for j in range(7,49): c

我尝试删除Excel工作表中的所有行,这些行满足以下条件:行中的所有单元格必须仅包含“-”或“”值

我使用Python和openpyxl

但我的代码不太好用:

import openpyxl

wb1 = openpyxl.load_workbook(filename="testat_openpyxl.xlsx")

instr=""
for i in range(5, wb1["Centralizator"].max_row):

  for j in range(7,49):


    celval=wb1["Centralizator"].cell(row=i,column=j).value
    ins='{}=="-" or {}=="" and '.format(celval)
    instr=instr + ins
 if  instr[:-3]:

    wb1["Centralizator"].delete_rows(i,1)


wb1.save('testat_openpyxl.xlsx')
我的想法是创建一个大的“if”语句,检查一行中的所有单元格:

 if wb1["Centralizator"].cell(row=5,column=7).value=="-" or 
wb1["Centralizator"].cell(row=5,column=7).value=="" and
wb1["Centralizator"].cell(row=5,column=8).value=="-" or
wb1["Centralizator"].cell(row=5,column=8).value==""
wb1["Centralizator"].cell(row=5,column=9).value=="-" or
wb1["Centralizator"].cell(row=5,column=9).value==""
.........loop until column 48............
wb1["Centralizator"].cell(row=5,column=48).value=="-" or
wb1["Centralizator"].cell(row=5,column=48).value==""
now jump to next row
if wb1["Centralizator"].cell(row=6,column=7).value=="-" or 
wb1["Centralizator"].cell(row=6,column=7).value=="" and
wb1["Centralizator"].cell(row=6,column=8).value=="-" or
wb1["Centralizator"].cell(row=6,column=8).value==""
.........loop until column 48...........
wb1["Centralizator"].cell(row=6,column=48).value=="-" or
wb1["Centralizator"].cell(row=6,column=48).value==""
next row.......until max_row....

“一行中的所有单元格”:请提问并澄清,因为您的代码只比较第7列和第8列。为什么不使用pandas读取数据并将修改后的数据重写到同一页?