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 天的临时许可证。