openpyxl: использование списка python для заполнения выпадающего списка - PullRequest
0 голосов
/ 06 декабря 2018

Я использую openpyxl для управления электронной таблицей из python.

Я пытаюсь создать раскрывающуюся проверку на вкладке книги под названием organisation.Можно ли использовать список Python для заполнения элементов в выпадающем списке?

Когда я жестко кодирую выпадающие параметры в строку DataValidation, например:

dv = DataValidation(type="list", formula1="The", "earth", "revolves", "around", "sun", allow_blank=True)

Раскрывающийся список создается на вкладке электронной таблицы и заполняется соответствующими параметрами.

Однако, когда я пытаюсь добавить раскрывающиеся опции, используя список python, а затем перехожу к строке DataValidation, например:

    valid = ['"The,earth,revolves,around,sun"']
    dv = DataValidation(type="list", formula1=valid, allow_blank=True)

, раскрывающийся список не создается.

Для получения дополнительной информации, пожалуйста, см. Ниже полный текст сценария

def addValidationDropDowns(path):

    valid = ['"The,earth,revolves,around,sun"']

    wb = openpyxl.load_workbook(path)
    ws = wb['organisation']
    dv = DataValidation(type="list", formula1=valid, allow_blank=True)
    ws.add_data_validation(dv)
    for x in range(0, 3):
        dv.add(ws["A"+str(x+10)])

    wb.save(path)

    return

Если кто-то может предложить какое-то руководство, оно будет оценено

Большое спасибо

1 Ответ

0 голосов
/ 04 апреля 2019

Я борюсь с этим в первый раз, когда я это сделал.Любопытно, что если параметром type или DataValidation является «список», вы думаете, что все в порядке, давайте использовать список!но нет!он ожидает строку.Я думаю, что ваш пример сработает, если вы уберете квадратные скобки с переменной 'valid'.

valid = '"The,earth,revolves,around,sun"'

...