如何使用 xlwings 清除 Excel 中的筛选器?

4

我团队正在使用Spyder (Python)中的xlwings将Excel表格转换为CSV格式。但是,当表格被筛选时,这会改变CSV输出。是否有一个xlwings命令可以清除活动Excel工作表中的筛选器?

VBA中类似的命令是(来自Excel 2013 VBA Clear All Filters macro):

Sub Macro1()
    Cells.AutoFilter
End Sub
3个回答

4
我们找到了一种方法来禁用过滤器,使用...
if wb.sheets[sheetname].api.AutoFilterMode == True:
      wb.sheets[sheetname].api.AutoFilterMode = False

正如@avkch在他的回答中建议的那样,这将完全删除过滤器。请参阅Mike的答案。 - Wtower

4

wb.sheets[sheetname].api.AutoFilterMode = False会将工作表中的筛选器移除,如果你只想清除筛选器并显示所有数据而不是移除它,你可以使用:wb.sheets[sheetname].api.AutoFilter.ShowAllData()


2
这将清除所有已激活的筛选器:
if wb.sheets[sheetname].api.AutoFilterMode:
    wb.sheets[sheetname].api.AutoFilter.ShowAllData()


属性错误: <unknown> .AutoFilterMode。你是不是想说:'AutoFilter'?不过,使用 if ...AutoFilter: 似乎可以解决这个问题。 - Wtower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接