openpyxl:如何在单张纸上获得多个自动过滤器

时间:2015-10-26 22:44:38

标签: openpyxl autofilter

如何在一张纸上获得多个过滤器?

单个过滤器很简单:

 worksheet.auto_filter.ref = "A1:D4"

我无法弄清楚如何做多个过滤器。我试过了几件事:

worksheet.auto_filter.ref = "A1:D4,A6:D9"
worksheet.auto_filter.ref = "A1:D4;A6:D9"

但注意到了。

谢谢, 莱恩

2 个答案:

答案 0 :(得分:1)

规范说每个工作表可能只有一个自动过滤器。

只要您对使用开发版本感到满意,您可能需要查看2.4开发分支,该分支具有更多改进的过滤和排序支持。我自己不使用过滤器,因此可以使用一些测试,反馈非常有用。

API已经改变了一些,最好的文档在测试中:

    af = AutoFilter('A1:F1')
    af.add_filter_column(5, ["0"], blank=True)
    ws.auto_filter = af

答案 1 :(得分:1)

发现我可以使用表来实现排序/过滤功能。并且您可以在一张表中包含多个表。不幸的是,我无法在openpyxl中找到一种方法,但XlsxWriter可以很容易地做到这一点。

worksheet1.add_table('A1:C4')
worksheet1.add_table('F8:H15')