我正在尝试使用 openpyxl 和 Python 对电子表格进行排序。我已经阅读了文档,但我不太了解此页面。我期待它添加自动过滤器下拉箭头或对我的电子表格进行排序,但它返回错误。这是我的代码
wb = openpyxl.load_workbook('report.xlsx')
ws = wb.active
ws['A2'] = "Store"
ws['B2'] = "Manager"
ws['C2'] = "Zone"
ws.column_dimensions.group('F','DU',hidden=True)
#ws.AutoFilter.add_sort_condition('C:C')
wb.save("report.xlsx")
根据文档,“ws.AutoFilter.add_sort_condition('C:C')”这一行看起来应该会给我想要的结果。 (是的,我知道它目前是一个注释行。我的其余代码在没有该行的情况下运行良好,所以我对其进行了注释。)
当我在代码中包含该行时,出现错误 - “Worksheet”对象没有属性“AutoFilter”,但根据文档,它看起来确实如此。 http://openpyxl.readthedocs.org/en/latest/_modules/openpyxl/worksheet/filters.html#AutoFilter .
如果有人可以帮助向我解释失败的原因或文档的含义,那就太好了。
文档中的这个语句让我特别困惑:
"Don't create auto filters by yourself. It is created by :class:
~openpyxl.worksheet.Worksheet
. You can use via :attr:~~openpyxl.worksheet.Worksheet.auto_filter
attribute."
因为我也试过了,也失败了。
更新:@crussell 的回复起作用了,因为它将自动过滤器添加到我的电子表格中。但是,它仍然没有将排序条件添加到适当的列。
最佳答案
auto_filter 命令返回 AutoFilter 对象,所以从某种意义上说它们是一样的。
你需要的是ws.auto_filter.ref = 'C1:C20'
包含您要过滤的单元格范围。
关于python - 使用 openpyxl 排序和自动过滤 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32614890/