Есть ли способ добавить автофильтр во все столбцы с помощью xlsxwriter без указания диапазона столбцов? - PullRequest
1 голос
/ 03 апреля 2020

У меня есть фрейм данных, который я пишу в Excel с использованием xlsxwriter, и я хочу, чтобы автофильтр применялся ко всем столбцам, где заголовок в моей электронной таблице не пустой, без указания диапазона (например, A1: D1). Есть ли способ сделать это?

1 Ответ

1 голос
/ 04 апреля 2020

Вам нужно будет указать диапазон каким-либо образом, но вы можете сделать это программно на основе shape () фрейма данных.

Например:

import xlsxwriter
import pandas as pd

df = pd.DataFrame({'A' : [1, 2, 3, 4, 5, 6, 7, 8],
                   'B' : [1, 2, 3, 4, 5, 6, 7, 8],
                   'C' : [1, 2, 3, 4, 5, 6, 7, 8],
                   'D' : [1, 2, 3, 4, 5, 6, 7, 8]})

writer = pd.ExcelWriter('test.xlsx', engine = 'xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter objects from the dataframe writer object.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Apply the autofilter based on the dimensions of the dataframe.
worksheet.autofilter(0, 0, df.shape[0], df.shape[1])

workbook.close()
writer.save()

Вывод:

enter image description here

...