根据列的填充情况删除行。Python,Exс;el,Win32com

根据列的填充情况删除行。Python,Exс;el,Win32com,python,excel,pywin32,win32com,Python,Excel,Pywin32,Win32com,下午好,如果B列中的填充颜色为黑色,我需要程序删除整行。这样只剩下灰色填充的线条 我试试这个: excel = win32com.client.Dispatch("Excel.Application") wb = excel.ActiveWorkbook sheet = wb.ActiveSheet i = sheet.Cells.SpecialCells(xlCellTypeLastCell).Row while i >= 1: if self.Rows(i).Interior

下午好,如果B列中的填充颜色为黑色,我需要程序删除整行。这样只剩下灰色填充的线条

我试试这个:

excel = win32com.client.Dispatch("Excel.Application")
wb = excel.ActiveWorkbook
sheet = wb.ActiveSheet
i = sheet.Cells.SpecialCells(xlCellTypeLastCell).Row
while i >= 1:
    if self.Rows(i).Interior.ColorIndex == 0:
        self.Rows(i).Delete()
        i += -1
但不确定什么是正确的,加上一个错误:

NameError: name 'xlCellTypeLastCell' is not defined

如何使用python删除以黑色标记的excel工作表中的单元格?

假设:

  • 工作表是活动工作表
  • 单元格位于第二列,用黑色填充标记
  • 我们不知道工作表中有多少单元格
代码:


这将删除该单元格,但这是必要的:如果B列中的单元格为黑色,则删除所有行。问题是,如果我试图删除整行,Excel就会崩溃,并出现一个错误,即它无法处理这样一个数字(虽然不是很多行)或删除一行中的所有行
import win32com.client as win32client

excel = win32client.gencache.EnsureDispatch('Excel.Application')
sheet = excel.Application.ActiveSheet
range_ = sheet.Range("B:B")
for cell in range_:
    if cell.Interior.ColorIndex == 1:
        cell.Delete()