openpyxl-为依赖列表添加数据验证

时间:2018-11-13 19:21:40

标签: python excel openpyxl

我想使用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 :(得分:0)

我并不是严格遵循您的榜样。我确实尝试运行您的代码,并在运行代码后手动打开excel工作簿时出现错误。阅读了openpyxl documentation的一些内容后,我通过稍微更改了forumula1部分来更新了代码,并且不再出现错误。

同样,不确定这是否是您想要的。

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