首页 > 解决方案 > 如何使用 openpyxl 清除列过滤器

问题描述

我遇到了现有电子表格的问题,其中用户应用了自动过滤器,然后在保存工作簿之前根据某些标准进行了过滤。我想最好使用清除这些过滤器,openpyxl但似乎不知道该怎么做。设置它们很简单。

所以我尝试的是实际上只是将自动过滤器移动到其他范围。这适用于将过滤器从受影响的列移开,但它不会清除过滤器。它仍然存在。

使用下面的代码,我可以设置autofilter

from openpyxl import load_workbook

filename = "path_to\\filter_test.xlsx"

wb = load_workbook(filename)
ws = wb.active
ws.auto_filter.ref = ws.dimensions
wb.save(filename)

然后我打开电子表格并将过滤器设置为某种状态以过滤数据并保存工作簿。

然后我移动过滤器:

from openpyxl import load_workbook

filename = "C:\\Users\\paul.nel\\Desktop\\filter_test.xlsx"

wb = load_workbook(filename)
ws = wb.active
ws.auto_filter.ref = "Z100"
wb.save(filename)

它会移动它但不会取消过滤之前的列。文档没有具体解决这个问题,也没有任何搜索具有建设性。

标签: pythonexcelopenpyxl

解决方案


推荐阅读