根据多种条件删除行

时间:2019-07-08 22:36:00

标签: python openpyxl

我需要根据单元格是否为空删除excel文件中的某些行。 有2个单元格可以包含一些用户数据 如果这些单元格中的任何一个都有数据,我需要保留它;否则,如果两个单元格都为空,则删除该行。

我弄清楚了如何根据1个单元格是否为空来删除行。 我希望它查看第6列和第8列 如果两者都为空,则删除该行。 如果其中只有一个为空,则保留该行。

当前代码是这个

from openpyxl import load_workbook
wb = load_workbook('Pull-1.xlsx')
sheetlist = wb.get_sheet_names()
sheet = wb.get_sheet_by_name(sheetlist[0])



rownumber = 1
for row in sheet.iter_rows(min_row=2, max_row= sheet.max_row, min_col=8, max_col=8, values_only=True):
  rownumber += 1
for i in range(sheet.max_row, 1, -1):
        if sheet.cell(row=i, column=8).value is None:
            sheet.delete_rows(i, 1)



wb.save('pull-1mod.xlsx')

也...如果我有不需要的其他东西,请告诉我。 我只是在学习,并通过在这里的研究将其拼凑而成。

1 个答案:

答案 0 :(得分:1)

将if语句更改为:

if sheet.cell(row=i, column=8).value is None and sheet.cell(row=i, column=6).value is None: