Openpyxl:如何向所有列添加过滤器

时间:2018-07-27 22:33:59

标签: python openpyxl

我可以打开工作表,如何在不打开任何过滤器的情况下将小的过滤器菜单添加到所有列?

我可以使用

在xlsxwriter中完成此操作
worksheet.autofilter(0, 0, 0, num_of_col)

我如何在openpyxl中做到这一点?

3 个答案:

答案 0 :(得分:2)

这篇文章帮助我回答了我的问题,但是您可以直接调用ws.dimensions,而不是为“ FullRange”创建变量,它会返回一个字符串值,范围为“ A1:XX”。我用它来将过滤器应用于整个excel电子表格。

import openpyxl as px

wb= px.load_workbook('Data/Test01.xlsx')
ws = wb.active

ws.auto_filter.ref = ws.dimensions

wb.save('Data/Test03.xlsx')

答案 1 :(得分:1)

您需要做的就是将worksheet.auto_filter.ref设置为整个工作表单元格。

import openpyxl
from openpyxl.utils import get_column_letter

workbook = openpyxl.load_workbook('Data/Test01.xlsx')
worksheet = workbook['Sheet1']

FullRange = "A1:" + get_column_letter(worksheet.max_column) \
+ str(worksheet.max_row)
worksheet.auto_filter.ref = FullRange

workbook.save('Data/Test03.xlsx')

答案 2 :(得分:0)

要通过#G5W添加答案,您可以选择执行以下操作: ''' worksheet.auto_filter.ref =“ C1:D10000”#将添加C和D过滤器中的示例列 '''