我遇到了现有电子表格的问题,其中用户应用了自动筛选器,然后在保存工作簿之前根据某些条件进行筛选。我想最好使用
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)
这会移动它但不会取消过滤前面的列。这些文档没有具体解决这个问题,并且没有任何搜索具有建设性。
做类似的事情:
ws.auto_filter.ref = None
对我来说,它成功了,而没有在保存的文件中造成损坏。