【问题标题】:How to clear filters in Excel using xlwings?如何使用 xlwings 清除 Excel 中的过滤器?
【发布时间】:2019-07-21 07:47:54
【问题描述】:

我的团队是 Sypder (Python) 中的 xlwings,负责将 Excel 表格转换为 CSV 格式。但是,当过滤表时,这会改变 CSV 输出。是否有 xlwings 命令可以清除活动 Excel 工作表中的过滤器?

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

Sub Macro1()
    Cells.AutoFilter
End Sub

【问题讨论】:

    标签: python excel filter xlwings


    【解决方案1】:

    我们找到了一种使用...禁用过滤器的方法

    if wb.sheets[sheetname].api.AutoFilterMode == True:
          wb.sheets[sheetname].api.AutoFilterMode = False
    

    【讨论】:

    • 正如@avkch 在他的回答中所建议的那样,这将完全删除过滤器。请参阅 Mike 的答案。
    【解决方案2】:

    wb.sheets[sheetname].api.AutoFilterMode = False 将从工作表中删除过滤器,如果您只想清除显示所有数据的过滤器而不删除它,您可以使用: wb.sheets[sheetname].api.AutoFilter.ShowAllData()

    【讨论】:

      【解决方案3】:

      如果有过滤器处于活动状态,这将清除过滤器:

      if wb.sheets[sheetname].api.AutoFilterMode:
          wb.sheets[sheetname].api.AutoFilter.ShowAllData()
      
      

      【讨论】:

      • AttributeError: <unknown>.AutoFilterMode. Did you mean: 'AutoFilter'? 。这似乎适用于if ...AutoFilter:
      猜你喜欢
      • 2023-03-12
      • 2017-06-04
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2013-01-29
      • 2019-04-10
      相关资源
      最近更新 更多