You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Xlwings删除已筛选的行?

使用Xlwings删除Excel筛选后的行

首先修正你代码里的拼写错误:Criterial应该改为Criteria1,这是Excel API的参数规范。

以下是完整的实现代码,包含筛选+删除筛选行的逻辑:

import xlwings as xw

filename = r"C:\Users\User\Xwlings\Input VAT_2021.12_rev.xlsx"
wb = xw.Book(filename)
sht = wb.sheets['Vendor_code']

# 执行筛选(修正参数拼写错误)
sht.api.Range('A1:F1900').AutoFilter(Field:=3, Criteria1:='TATA')

# 获取筛选后的可见单元格区域(排除表头行,从A2开始)
filtered_visible_cells = sht.api.Range('A2:F1900').SpecialCells(12)  # 12代表xlCellTypeVisible

# 删除这些单元格所在的整行
filtered_visible_cells.EntireRow.Delete()

# 关闭自动筛选状态
sht.api.AutoFilterMode = False

# 按需保存并关闭工作簿
wb.save()
wb.close()

关键说明:

  • SpecialCells(12):调用Excel原生API获取筛选后的所有可见单元格,12是xlCellTypeVisible的数值常量
  • EntireRow.Delete():针对可见单元格对应的整行执行删除操作,确保筛选出的行被批量移除
  • 最后关闭筛选状态,避免表格残留筛选控件

内容的提问来源于stack exchange,提问作者Wan Seob Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:45:32