Как автофильтровать Excel-лист перед выводом - PullRequest
0 голосов
/ 25 сентября 2019

Я делаю функцию для скрипта, который извлекает данные из API, который будет выводить фрейм данных в Excel-лист.Мне нужна автофильтрация (в качестве необязательного аргумента).

Я почти закончил, но продолжаю получать ошибку атрибута со следующим объяснением Объект «Рабочий лист» не имеет атрибута «автофильтр»

Это код, который я пробовал

def generate_xls(df, file_name, sheet_name, column_names=None, auto_filter=True):

    if column_names != None:
        df.columns = column_names

    print("appending the data in order...")   

    print("\nCreating excel-file")

    writer = pd.ExcelWriter(file_name + '.xls')    

    df.to_excel(writer,sheet_name,index=False)

    if auto_filter == True:
        for worksheet in writer.sheets.values():  
            worksheet.autofilter(df.columns)            

    writer.save()
    print("Excel-file generated.")

Он отлично работает без автофильтрации, но для меня действительно важно иметь его, так как есть другие, которым это может понадобиться.Любой совет был бы великолепен!

1 Ответ

0 голосов
/ 25 сентября 2019

Я думаю, вам сначала нужно добавить автофильтр, предполагая, что вы используете OpenPyXl :

Чтобы добавить фильтр, вы определяете диапазон, а затем добавляете столбцы и сортируетеусловия

ws.auto_filter.ref = "A1:B15"
ws.auto_filter.add_filter_column(0, ["Kiwi", "Apple", "Mango"])
ws.auto_filter.add_sort_condition("B2:B15") ```

Конечно, вы можете опустить add_filter и add_sort_conditions и оставить это для настройки пользователем. Вам нужно будет просто сделать :

worksheet.auto_filter.ref = worksheet.dimensions
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...