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

Openpyxl: How to add filters to all columns

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

我可以用

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

如何在 openpyxl 中执行?

您需要做的就是将 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')

您可以简单地阅读 ws.dimensions,它会 return 一个字符串值,您的范围是“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')