Excel 使用 Python 应用自动筛选器和自定义筛选器

问题描述 投票:0回答:1

我有一个 Excel 文件,其中工作表句柄变量名称是

wks_yella
。我正在尝试使用
auto_filter.add_filter_column
openpyxl.worksheet.filters.CustomFilterValueDescriptor
应用自动过滤器。 使用
auto_filter
的过滤器正在生效,但
openpyxl.worksheet.filters.CustomFilterValueDescriptor
未生效。

这是代码块

# Apply filters on both Column B (2nd column) and Column E (5th column)
wks_yella.auto_filter.ref = f'A1:T{wks_yella.max_row}'  # Update the range for all columns

wks_yella.auto_filter.add_filter_column(1, vals=saka_filter, blank=True)
wks_yella.auto_filter.add_filter_column(4, vals=gothram_filter, blank=True)

regex_pattern = r'.*199[3-6].*'
custom_filter = openpyxl.worksheet.filters.CustomFilterValueDescriptor(pattern=regex_pattern)
wks_yella.column_dimensions['G'].filter = custom_filter

我可以寻求帮助来解决这个问题吗?

python excel openpyxl
1个回答
0
投票

ChatGPT 和 Stackoverflow.com 都无法回答我提出的查询。所以我想到了一个解决方法。

我是目标 Excel 文件,当单元格值包含 1993、1994、1995 和 1996 等值时,我使用

Condtional Formatting
选项突出显示
column G
。 在
Contional Formatting
下,我在
=>Use a formula to determine which cells to highlight
文本框中选择了
Format Values where this formula is true
,放置了这个公式
=OR(ISNUMBER(SEARCH("1993", G1)), ISNUMBER(SEARCH("1994", G1)), ISNUMBER(SEARCH("1995", G1)), ISNUMBER(SEARCH("1996", G1)))
,然后设置单元格格式填充和文本字体。

并且突出显示了要求。然后我只是选择了按字体过滤的。

我想使用

python
来实现上述目标,但人们更有兴趣投反对票,因为他们无法理解 python 词干。

希望这个解决方法对那些陷入困境的人来说很方便。

© www.soinside.com 2019 - 2024. All rights reserved.