当我使用工作表属性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