我正在使用openpyxl
从python处理电子表格。
我试图在一个名为organisation
的工作簿标签中创建一个下拉验证。是否可以使用python列表填充下拉选择中的元素?
当我将下拉选项硬编码到DataValidation
行中时,如下所示:
dv = DataValidation(type="list", formula1="The", "earth", "revolves", "around", "sun", allow_blank=True)
在电子表格标签中创建下拉菜单,并按预期填充选项。
但是,当我尝试使用python list添加下拉选项,然后像这样传递到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
如果有人可以提供一些指导,将不胜感激
非常感谢
答案 0 :(得分:1)
我第一次这样做就为此感到挣扎。奇怪的是,如果您认为“类型”参数或DataValidation是“列表”,那我们就使用一个列表吧!但不是!它期待一个字符串。我认为,如果您删除“有效”变量的方括号,您的示例将起作用。
valid = '"The,earth,revolves,around,sun"'