首页 > 解决方案 > 根据多个条件删除行

问题描述

我需要根据单元格是否为空来删除 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')

另外...如果我有不需要的额外内容,请告诉我。我只是在学习,并从这里的研究中拼凑起来。

标签: pythonopenpyxl

解决方案


将 if 语句更改为:

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


推荐阅读