Openpyxl 工作表属性"过滤器模式"似乎无法正常工作



当我使用工作表属性filterMode,将其设置为工作表的True时,过滤器不会出现在第一行中,即我希望第一行的每列右侧都有小按钮,打开该列中使用的值的列表。

我确实注意到Excel窗口左下角有一个文本Filter Mode

这是我测试的代码:

import openpyxl as xl
s_xl_file = 'c:/temp/test-openpyxl.xlsx'
tu_data = (
('Col A', 'Col B'),
(25, 30),
(100, 250)
)
wb          =   xl.Workbook()
ws          =   wb.active
ws.title    =   'Test'
for tu_row in tu_data:
ws.append(tu_row)
ws_props            =   ws.sheet_properties
ws_props.filterMode =   True
wb.save(s_xl_file)

我在这里做错了什么吗,还是过滤模式引用了Excel的Data功能区中的过滤函数之外的其他内容?

版本数据:

  • 操作系统:Windows 10 64位
  • Python:3.8.5,64位
  • Openpyxl:3.0.3
  • Excel:365 MSO(16.0.113001.20266(32位,用于以后打开Excel工作簿

我在这里做错了什么,还是过滤模式引用了Excel数据功能区中的过滤函数之外的其他内容?

我也犯了同样的错误。filterMode指的是其他东西。具体来说,它是一个标志,指示工作表上是否有一个或多个自动筛选器或高级筛选器。将其设置为True不会提供筛选功能。

要为整张纸启用小过滤按钮,请添加以下内容:

ws.auto_filter.ref = ws.dimensions
ws.auto_filter.add_filter_column(0, [])

你可以摆脱这一点,因为它一无所获:

ws_props            =   ws.sheet_properties
ws_props.filterMode =   True

请参阅文档:https://openpyxl.readthedocs.io/en/stable/filters.html

最新更新