openpyxl - добавить проверку данных для зависимого списка - PullRequest
0 голосов
/ 13 ноября 2018

Я хотел бы создать зависимый выпадающий список, используя openpyxl. Определение именованных диапазонов и заполнение первого раскрывающегося списка с помощью модуля DataValidation работает нормально.

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

Вот код, который я использую, который терпит неудачу:

dv = DataValidation(type='list', formula1="'INDIRECT(B16)'")
sheet.add_data_validation(dv)
dv.add('A19:A33')

Ручное добавление формулы =INDIRECT(B16) в ячейку в Excel работает. И использование пользовательского типа (а не списка) возможно, но, очевидно, не имеет предполагаемой функциональности раскрывающегося списка, т. Е .:

dv = DataValidation(type='custom', formula1="'=INDIRECT(B16)'")

1 Ответ

0 голосов
/ 14 ноября 2018

Я не полностью следую вашему примеру.Я попытался запустить ваш код и получил ошибку при ручном открытии книги Excel после выполнения кода.Прочитав часть документации openpyxl , я обновил код, немного изменив часть forumula1, и у меня больше не было ошибки.

Опять же, не уверен, что это то, что вы искали или нет.

dv = DataValidation(type='list', formula1="=INDIRECT(B16)")
sheet.add_data_validation(dv)
dv.add('A19:A33')
...