Excel 中的自动筛选功能是一个功能强大的工具,可让您根据特定条件快速筛选工作表数据,从而更轻松地查找和分析相关信息。对单元格区域应用自动筛选功能时,可以只显示满足特定条件的行,而隐藏其他数据。本文将介绍如何使用 Spire.XLS for Python 在 Python 中为 Excel 添加或删除自动筛选器。
- Python 为 Excel 单元格添加自动筛选器
- Python 在 Excel 中应用日期自动筛选器
- Python 在 Excel 中应用自定义自动筛选器
- Python 删除 Excel 中的自动筛选器
安装 Spire.XLS for Python
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Python 为 Excel 单元格添加自动筛选器
Spire.XLS for Python 允许您通过 Worksheet.AutoFilters.Range 属性在特定单元格区域应用自动筛选器。以下是详细步骤:
- 创建一个 Workbook 实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[sheetIndex] 属性获取指定的工作表。
- 使用 Workheet.AutoFilters.Range 属性为指定单元格区域添加自动筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 定义输入文件和输出文件名
inputFile = "输入文档.xlsx"
outputFile = "Excel自动筛选器.xlsx"
# 创建一个Workbook对象
workbook = Workbook()
# 从输入文件加载Workbook对象
workbook.LoadFromFile(inputFile)
# 获取Workbook中的第一个工作表
sheet = workbook.Worksheets[0]
# 设置工作表的自动过滤范围为第一行的A到C列
sheet.AutoFilters.Range = sheet.Range["A1:C1"]
# 将修改后的Workbook保存到输出文件中,指定Excel版本为2016
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放Workbook对象
workbook.Dispose()
Python 在 Excel 中应用日期自动筛选器
如果您需要查看与特定日期或时间相关的信息,可以使用 Workbook.AutoFilters.AddDateFilter (column: IAutoFilter, dateTimeGroupingType: DateTimeGroupingType, year: int, Month: int, day: int, hour: int, minute: int, second: int) 方法。以下是详细步骤:
- 创建一个 Workbook 实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 通过 Workbook.Worksheets[index] 属性获取指定的工作表。
- 使用 Workbook.AutoFilters.Range 属性为指定范围添加自动筛选器。
- 获取要过滤的列。
- 调用 Workbook.AutoFilters.AddDateFilter() 方法为列添加日期筛选器,以过滤与指定年/月/日期等相关的数据。
- 使用 Workbook.AutoFilters.Filter() 方法应用筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 定义输入文件和输出文件名
inputFile = "输入文档.xlsx"
outputFile = "日期自动筛选器.xlsx"
# 创建一个Workbook对象
workbook = Workbook()
# 从输入文件加载Workbook对象
workbook.LoadFromFile(inputFile)
# 获取Workbook中的第一个工作表
sheet = workbook.Worksheets[0]
# 设置工作表的自动过滤范围为第一列的前6行
sheet.AutoFilters.Range = sheet.Range["A1:A6"]
# 获取要过滤的列
filtercolumn = sheet.AutoFilters[0]
# 添加日期筛选器,以月为单位,过滤2024年3月的日期
sheet.AutoFilters.AddDateFilter(filtercolumn, DateTimeGroupingType.Month, 2024, 3, 0, 0, 0, 0)
# 执行过滤操作
sheet.AutoFilters.Filter()
# 将修改后的Workbook保存到输出文件中,指定Excel版本为2016
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放Workbook对象
workbook.Dispose()
Python 在 Excel 中应用自定义自动筛选器
通过 Workbook.AutoFilters.CustomFilter(column: FilterColumn, operatorType: FilterOperatorType, criteria: Object) 方法,您可以根据特定条件创建自定义筛选器。例如,您可以过滤包含特定文本的数据。以下是详细步骤:
- 创建一个 Workbook 实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[sheetIndex] 属性获取指定的工作表。
- 使用 Workbook.AutoFilters.Range 属性为指定范围添加自动筛选器。
- 获取要过滤的列。
- 使用 Workbook.AutoFilters.CustomFilter() 方法为列添加自定义筛选器,以过滤包含指定字符串的数据。
- 使用 Workbook.AutoFilters.Filter() 方法应用筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 定义输入文件和输出文件名
inputFile = "输入文档.xlsx"
outputFile = "自定义自动筛选器.xlsx"
# 创建一个Workbook对象
workbook = Workbook()
# 从输入文件加载Workbook对象
workbook.LoadFromFile(inputFile)
# 获取Workbook中的第一个工作表
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保存到输出文件中,指定Excel版本为2016
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放Workbook对象
workbook.Dispose()
Python 删除 Excel 中的自动筛选器
除了在 Excel 文件中添加自动筛选器外,Spire.XLS for Python 还支持通过 Worksheet.AutoFilters.Clear() 方法从 Excel 中移除或删除自动筛选器。以下是详细步骤:
- 创建一个 Workbook 实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[sheetIndex] 属性获取指定的工作表。
- 使用 Worksheet.AutoFilters.Clear() 方法删除工作表中的自动筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 定义输入文件和输出文件名
inputFile = "自定义自动筛选器.xlsx"
outputFile = "删除自动筛选器.xlsx"
# 创建一个Workbook对象
workbook = Workbook()
# 从输入文件加载Workbook对象
workbook.LoadFromFile(inputFile)
# 获取Workbook中的第一个工作表
sheet = workbook.Worksheets[0]
# 清除工作表的所有自动筛选器
sheet.AutoFilters.Clear()
# 将修改后的Workbook保存到输出文件中,指定Excel版本为2016
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
# 释放Workbook对象
workbook.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。