使用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=“,”。加入(有效)