Python 在Excel中应用和取消多种不同类型的数据筛选

目录

[安装Python Excel处理库](#安装Python Excel处理库)

[Python 在 Excel 中应用文本筛选](#Python 在 Excel 中应用文本筛选)

[Python 在 Excel 中应用数字筛选](#Python 在 Excel 中应用数字筛选)

[Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选](#Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选)

[Python 在 Excel 中应用日期筛选](#Python 在 Excel 中应用日期筛选)

[Python 在 Excel 中应用动态日期筛选](#Python 在 Excel 中应用动态日期筛选)

[Python 在 Excel 中筛选空单元格或非空单元格](#Python 在 Excel 中筛选空单元格或非空单元格)

[Python 取消Excel 中的数据筛选](#Python 取消Excel 中的数据筛选)


Excel中的筛选功能是一项非常实用的工具,它可以帮助用户根据特定条件或标准快速查找和显示相关数据。当应用筛选时,Excel会自动隐藏不符合条件的行,使用户能够快速聚焦于最重要的信息,从而提升数据分析的效率和准确性。在这篇文章中,我们将探讨如何使用 Python 在 Excel 中应用多种不同类型的数据筛选和取消数据筛选。主要涵盖以下内容:

  • Python 在 Excel 中应用文本筛选
  • Python 在 Excel 中应用数字筛选
  • Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选
  • Python 在 Excel 中应用日期筛选
  • Python 在 Excel 中应用动态日期筛选
  • Python 在 Excel 中筛选空单元格或非空单元格
  • Python 取消Excel 中的数据筛选

安装Python Excel处理库

要使用Python在 Excel 中应用和取消数据筛选,可以使用 Spire.XLS for Python 库。它支持在 Python 应用程序中创建、读取、编辑和转换 Excel 文件。使用该库,你可以在Excel中应用多种不同类型的数据筛选,也可以取消Excel中已有的数据筛选。

你可以通过在终端中运行以下命令从 PyPI 安装 Spire.XLS for Python:

python 复制代码
pip install Spire.Xls

Python 在 Excel 中应用文本筛选

Excel中的文本筛选是一种基于文本内容的筛选方式,用户可以通过它筛选出符合特定条件的文本数据。它主要用于包含文字的列,比如客户名称、产品名称等,帮助用户快速查找所需的信息。

通过 Spire.XLS for Python 提供的 AddFilter() 函数,你可以在Excel 工作表中添加一个或多个文本筛选器。

以下代码展示了如何在 Python 中应用文本筛选,以筛选包含特定文字的单元格:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 创建一个筛选器,以筛选数据区域第1列中包含"笔记本"的单元格
sheet.AutoFilters.AddFilter(0, "笔记本")

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为新文件
workbook.SaveToFile("文本筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

有时,你可能想要筛选以特定文字开头的单元格。要实现这一功能,你可以使用 CustomFilter() 函数。以下代码展示了如何使用 Python 在Excel中应用自定义文本筛选,来筛选以特定文字开头的单元格:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 添加自定义筛选器,以筛选数据区域第5列中以"赵"开头的单元格
sheet.AutoFilters.CustomFilter(4, FilterOperatorType.Equal, String("赵*"))

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("自定义文本筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 在 Excel 中应用数字筛选

Excel中的数字筛选是一种针对数字数据的筛选功能,它允许用户根据特定的数值条件筛选数据。这在处理包含大量数字的表格时尤其有用,如销售数据、库存数量等。

要向 Excel 工作表添加数字筛选,你可以使用 CustomFilter() 函数。以下代码展示了如何使用Python在 Excel 中应用数字筛选,以筛选大于某个特定数字的单元格:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 添加自定义筛选器,以筛选数据区域第2列中值大于1000的单元格
sheet.AutoFilters.CustomFilter(1, FilterOperatorType.GreaterThan, Int32(1000))

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("数字筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

除了"大于 "运算符之外,你还可以使用其他运算符来筛选数字,例如"小于 "、"等于 "、"小于或等于"等等。以下代码展示了如何使用 Python 在Excel中筛选介于两个特定数字之间的单元格:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 添加自定义筛选器,以筛选数据区域第2列中值介于100(含) 和 800(含)之间的单元格
sheet.AutoFilters.CustomFilter(1, FilterOperatorType.GreaterOrEqual, Int32(100), True, FilterOperatorType.LessOrEqual, Int32(800))

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("数字筛选1.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选

Excel中的基于字体颜色、单元格颜色或图标集的筛选是一种视觉筛选功能,可以帮助用户快速识别出具有相同格式或视觉特征的数据。

要应用单元格颜色筛选,你可以使用 AddFillColorFilter() 函数。以下代码展示了如何使用 Python 在Excel中进行基于单元格颜色的筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 创建一个筛选器,以筛选数据区域第1列中填充特定背景颜色的单元格
sheet.AutoFilters.AddFillColorFilter(0, sheet.Range["B2"].Style.Color)

# 应用筛选
sheet.AutoFilters.Filter()

# 将结果工作簿保存到文件
workbook.SaveToFile("单元格颜色筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

要应用字体颜色筛选,你可以使用 AddFontColorFilter() 函数。以下代码展示了如何使用 Python 在Excel中进行基于字体颜色(红色)的筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("字体颜色.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:D5"]

# 创建一个筛选器,以筛选数据区域第1列中具有特定字体颜色的单元格
sheet.AutoFilters.AddFontColorFilter(0, Color.get_Red())

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("字体颜色筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

要应用图标集筛选,你可以使用 AddIconFilter() 函数。以下代码展示了如何使用 Python 在Excel中进行基于图标集的筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("图标集.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:C5"]

# 创建一个筛选器,以筛选数据区域第3列中具有特定图标集的单元格
sheet.AutoFilters.AddIconFilter(2, IconSetType.ThreeArrows, 2)

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("图标集筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 在 Excel 中应用日期筛选

Excel中的日期筛选功能允许用户基于日期条件筛选数据,以便轻松地查看和分析特定时间范围的数据。此功能对于处理包含日期信息的数据集(如销售记录、项目截止日期、考勤记录等)非常有用。

你可以使用 AddDateFilter() 函数在Excel中添加不同类型的日期筛选器。以下代码展示了如何使用Python在Excel中应用基于特定月份(2024年6月)的日期筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 添加一个日期筛选器,以筛选数据区域第3列中含特定月份(2024年6月)的日期的单元格
sheet.AutoFilters.AddDateFilter(2, DateTimeGroupingType.Month, 2024, 6, 0, 0, 0, 0)

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("日期筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 在 Excel 中应用动态日期筛选

Excel中的动态日期筛选是一种特殊的筛选功能,它允许用户根据相对日期范围动态筛选数据,而不是仅基于静态日期。这种筛选功能可以自动适应当前日期,便于实时查看和分析数据。

要应用动态日期筛选,你可以使用 DynamicFilter() 函数。以下代码展示了如何使用Python在Excel中应用基于当前年份的动态日期筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("销售.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:F11"]

# 添加一个动态筛选器,以筛选数据区域第3列中含当前年份的日期的单元格
sheet.AutoFilters.DynamicFilter(2, DynamicFilterType.ThisYear)

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("动态日期筛选.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 在 Excel 中筛选空单元格或非空单元格

Excel中的空单元格可能对数据分析产生影响,导致计算不准确,进而影响数据的分析结果。你可以使用 MatchNonBlanks() 函数来实现仅筛选非空单元格。以下代码展示了如何使用Python在Excel中应用非空单元格筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("测试.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:E7"]

# 添加一个非空筛选器,以筛选数据区域第1列中的非空单元格
sheet.AutoFilters.MatchNonBlanks(0)

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("筛选非空单元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

如果需要筛选空单元格,你可以使用 MatchBlanks() 函数。以下代码展示了如何使用Python在Excel中应用空单元格筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("测试.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定要筛选的数据区域
sheet.AutoFilters.Range = sheet.Range["A1:E7"]

# 添加一个空筛选器,以筛选数据区域第1列中的空单元格
sheet.AutoFilters.MatchBlanks(0)

# 应用筛选
sheet.AutoFilters.Filter()

# 将筛选结果保存为文件
workbook.SaveToFile("筛选空单元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Python 取消Excel 中的数据筛选

如果不再需要筛选,你可以使用 Clear() 函数将其从工作表中清除。以下代码展示了如何使用 Python 清除Excel 工作表中的所有筛选:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("动态日期筛选.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 删除工作表中的所有筛选
sheet.AutoFilters.Clear()

# 将结果工作簿保存为文件
workbook.SaveToFile("取消筛选.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

以上就是使用Python在Excel中应用各种不同类型的数据筛选,以及如何清除Excel中现有的数据筛选的全部内容。本文完结。

相关推荐
Eiceblue15 分钟前
Python 复制Excel 中的行、列、单元格
开发语言·python·excel
NLP工程化30 分钟前
对 Python 中 GIL 的理解
python·gil
极客代码41 分钟前
OpenCV Python 深度指南
开发语言·人工智能·python·opencv·计算机视觉
liO_Oil42 分钟前
(2024.9.19)在Python的虚拟环境中安装GDAL
开发语言·python·gdal安装
奈斯。zs1 小时前
yjs08——矩阵、数组的运算
人工智能·python·线性代数·矩阵·numpy
Melody20501 小时前
tensorflow-dataset 内网下载 指定目录
人工智能·python·tensorflow
学步_技术1 小时前
Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图
开发语言·python·抽象工厂模式
Narutolxy2 小时前
Python 单元测试:深入理解与实战应用20240919
python·单元测试·log4j
Amo Xiang2 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
liangbm32 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题