Excel 的自动筛选(AutoFilter) 功能是数据处理的高效工具,可根据自定义条件快速筛选工作表数据 — 应用筛选后,仅显示符合条件的行,其余数据自动隐藏,极大简化了数据筛选与分析流程。
然而,若长期保留激活状态的自动筛选,可能导致数据误读(如将筛选后数据视为完整数据集)或格式混乱。因此,掌握 “添加” 与 “删除” 自动筛选的操作同样重要。本文将基于 Spire.XLS for Python 库,详细讲解如何在 Python 中实现 Excel 自动筛选器添加和删除操作,附完整代码与场景说明。
目录:
安装 Spire.XLS for Python
Spire.XLS for Python 是一款轻量且功能全面的 Excel 处理库,支持自动筛选、公式计算、图表生成等近百种 Excel 操作,无需依赖 Microsoft Excel 环境即可运行。
若要安装该 Python 库,请打开终端或命令提示符,运行以下命令:
pip install Spire.XLS
pip 工具会自动从 Python 包索引(PyPI)搜索 Spire.XLS 库的最新版本,然后下载并安装该库及其所有必需的依赖项。
如何在 Python 中使用 Excel 自动筛选器
1. Python 在 Excel 中添加自动筛选器
Excel 自动筛选可应用于指定单元格区域(如 A1:C1)或整列(如 A 列)。以下是使用到的核心属性:
- Worksheet.AutoFilters:获取工作表中的自动筛选器集合,返回一个- AutoFiltersCollection对象。
- AutoFiltersCollection.Range:指定需要筛选的单元格区域。
Python 代码示例:
from spire.xls import *
from spire.xls.common import *
# 指定输入文件和输出文件名
inputFile = "输入文档.xlsx"
outputFile = "Excel自动筛选器.xlsx"
# 创建 Workbook 实例
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile(inputFile)
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 在工作表中创建自动筛选,并指定要筛选的区域为第一行的A到C列
sheet.AutoFilters.Range = sheet.Range["A1:C1"]
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放资源
workbook.Dispose()
结果: 打开输出文件后,会发现A1、B1、C1 单元格右侧出现下拉箭头,点击箭头可展开筛选选项。

2. Spire.XLS 支持的各种筛选类型
Spire.XLS 的 AutoFiltersCollection 类提供了多种筛选方法,覆盖文本、日期、空白值、颜色等常见场景,满足不同数据筛选需求。
| 筛选类型 | 详细说明 | 
|---|---|
| 文本筛选 | AddFilter()方法:筛选包含指定文本内容的单元格。 | 
| 日期筛选 | AddDateFilter()方法:筛选与指定年/月/日等关联的日期。 | 
| 空白/非空白单元格筛选 | 
 | 
| 按颜色筛选 | 
 | 
| 自定义筛选 | CustomFilter()方法:按自定义条件筛选。 | 
注意:调用上述方法后,需额外执行 Worksheet.AutoFilters.Filter() 才能生效(触发筛选操作)。
3. Python 在 Excel 中应用自定义筛选
若基础筛选无法满足需求,可通过 CustomFilter(column: FilterColumn, operatorType: FilterOperatorType, criteria: Object) 实现自定义条件筛选。以下示例为过滤包含特定文本的数据。
Python 代码示例:
from spire.xls import *
from spire.xls.common import *
# 指定输入文件和输出文件名
inputFile = "输入文档.xlsx"
outputFile = "自定义自动筛选器.xlsx"
# 创建 Workbook 实例
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile(inputFile)
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 设置工作表的自动过滤范围为第二列的前6行
sheet.AutoFilters.Range = sheet.Range["B1:B6"]
# 获取要筛选的列
filtercolumn = sheet.AutoFilters[0]
# 设置自定义过滤条件为筛选出包含"鼠标"的内容
strCrt = String("鼠标")
sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.Equal, strCrt)
# 执行过滤操作
sheet.AutoFilters.Filter()
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放资源
workbook.Dispose()
结果:仅显示包含"鼠标"的内容,其他类别数据将被隐藏。

如何通过 Python 删除 Excel 中的自动筛选器
当筛选完成后,建议删除自动筛选(尤其是需分享文件时),避免他人误判数据完整性。Spire.XLS 提供了 AutoFiltersCollection.Clear() 方法一键删除所有筛选器。
核心作用
- 展示完整数据:所有被隐藏的行 / 列将恢复可见;
- 清理格式:移除表头的筛选下拉箭头,使表格更简洁;
- 避免误解:防止接收者将 “筛选后数据” 误认为 “完整数据集”。
Python 代码示例:
from spire.xls import *
from spire.xls.common import *
# 指定输入文件和输出文件名
inputFile = "自定义自动筛选器.xlsx"
outputFile = "删除自动筛选器.xlsx"
# 创建 Workbook 实例
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile(inputFile)
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 清除工作表的所有自动筛选器
sheet.AutoFilters.Clear()
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放资源
workbook.Dispose()
总结与适用场景
通过 Spire.XLS for Python,可实现 Excel 自动筛选器的 “添加 - 应用 - 删除” 全流程自动化,无需手动操作 Excel,极大提升数据处理效率。
适用场景
- 批量处理 Excel 报表(如每月销售数据筛选);
- 自动化生成筛选后的数据分析报告;
- 多文件统一格式(如删除所有文件的自动筛选)。
如需进一步探索高级功能(如筛选后导出数据),可参考 Spire.XLS for Python 官方文档。
 



 
					



