Python выпадающий фильтр Excel не работает ни с openpyxl, ни с xlsxwriter - PullRequest
1 голос
/ 04 августа 2020

Я работал в xlsxwriter и столкнулся с проблемой создания раскрывающегося списка. Проверка данных не появилась, даже если я был уверен, что понял суть кода. Я начал с:

def english_fluency(pd_df, source):
"""data validation for english fluency"""
    writer = pd.ExcelWriter(source, engine='xlsxwriter')
    pd_df.to_excel(writer, sheet_name='Verification', index=False)
    workbook = writer.book
    worksheet = writer.sheets['Verification']
    worksheet.data_validation('E2', {'validate': 'list',
                                    'source': [' ', '1', '2',
                                               '3', '4']})
    workbook.save()
    workbook.close()

Поскольку мне казалось, что я все время натыкаюсь на стену, я решил переключиться на openpyxl, чтобы попытаться выполнить sh то же самое более лаконично:

def english_fluency_dv(ws):
    """data validation for english fluency"""
    dv_ef = DataValidation(type="list", formula1='"1,2,3,4"', allow_blank=True, showDropDown=True)
    ws.add_data_validation(dv_ef)
    return ws

Я все еще не вижу раскрывающегося списка проверки данных, возможно, я что-то упускаю или помещаю его не в ту область листа Excel?

1 Ответ

1 голос
/ 05 августа 2020

Вы использовали правильный код с неправильной библиотекой. Этот код использует xlswriter для добавления проверки в ячейку E2:

import xlsxwriter

workbook = xlsxwriter.Workbook('ValList.xlsx')  # open\create workbook
ws = workbook.add_worksheet('Verification')  # new sheet

# add validation list
ws.data_validation('E2', {'validate': 'list',
                          'source': [' ', '1', '2', '3', '4']})

ws.write("E2", '2')  # set cell value

workbook.close()  # save & close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...