我可以打开工作表,如何在不打开任何过滤器的情况下将小的过滤器菜单添加到所有列?
我可以在xlsxwriter中做到
worksheet.autofilter(0, 0, 0, num_of_col)
Run Code Online (Sandbox Code Playgroud)
我该如何在openpyxl中执行呢?
小智 9
这篇文章帮助我回答了我的问题,但是您可以直接调用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')
Run Code Online (Sandbox Code Playgroud)
您需要做的就是设置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')
Run Code Online (Sandbox Code Playgroud)