使用Python列表填充下拉式验证

使用Python列表填充下拉式验证,python,openpyxl,Python,Openpyxl,我正在使用openpyxl从Python操作电子表格 我正在尝试在名为organization的工作簿选项卡中创建下拉验证。是否可以使用Python列表填充下拉选择中的元素 当我将下拉选项硬编码到DataValidation行时,如下所示: dv = DataValidation(type="list", formula1="The", "earth", "revolves", "around",

我正在使用
openpyxl
从Python操作电子表格

我正在尝试在名为
organization
的工作簿选项卡中创建下拉验证。是否可以使用Python列表填充下拉选择中的元素

当我将下拉选项硬编码到
DataValidation
行时,如下所示:

dv = DataValidation(type="list", formula1="The", "earth", "revolves", "around", "sun", allow_blank=True)
    valid = ['"The,earth,revolves,around,sun"']
    dv = DataValidation(type="list", formula1=valid, allow_blank=True)
下拉列表在电子表格选项卡中创建,并按预期填充选项

但是,当我尝试使用Python列表添加下拉选项,然后传递到
DataValidation
行时,如下所示:

dv = DataValidation(type="list", formula1="The", "earth", "revolves", "around", "sun", allow_blank=True)
    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

我第一次做这件事的时候,我就很挣扎。奇怪的是,如果'type'参数或DataValidation是'list',您会认为-好吧,让我们使用一个list!但是没有!它需要一个字符串。我认为,如果您删除“valid”变量的方括号,您的示例将起作用

valid='“地球围绕太阳旋转”

来自:
dv=DataValidation(type=“list”,formula1='“Dog,Cat,Bat”,allow_blank=True)
。使用
valid='“地球围绕太阳旋转”
formula1=“,”。加入(有效)