我遇到了现有电子表格的问题,其中用户应用了自动过滤器,然后在保存工作簿之前根据某些条件进行过滤。我想最好使用 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)
移动它但不会取消过滤前面的列。文档没有具体解决这个问题,也没有任何建设性的搜索。