openpyxl - 读取数据验证 - 列表

时间:2016-11-09 13:00:25

标签: excel python-3.x openpyxl

我有一张excel表,带有数据验证属性 - 列表。

我需要创建column_name字典和相关的下拉列表值。

例如:{A:[a1,a2,a3],B:[b1,b2],C:[c1,c2,c3,c4]}。

有多个如何在excel中嵌入数据验证列表的示例, 但我怎么读呢?

我尝试过简单的代码:

from openpyxl import load_workbook

excel = load_workbook('test.xlsx')
sheet = excel.get_sheet_by_name('RequiredFormat')
for row in sheet.iter_rows():
    for cell in row:
        print(cell.value)
    input("Proceed ?")

我检查了单元格的可用选项。

但没有任何内容可以说明数据验证或列表。

有办法吗?

2 个答案:

答案 0 :(得分:2)

您目前无法读取现有数据验证。阅读 Openpyxl documentation

答案 1 :(得分:-2)

这是我将要用来读取列表值和哪个单元格的代码快照

                tstlst = ws.data_validations.dataValidation
                print('---')
                print(tstlst)
                print('---')
                nr = 0
                for tst2 in tstlst:
                    nr += 1
                    print(str(nr) + " : " + str(tst2))
                    tst3 = tst2.sqref
                    print('sqref: ' + str(tst3))
                    tst4 = tst2.formula1
                    print('list: ' + tst4)

也许这有帮助

这会为我在 A13 中的数据验证列表生成以下输出

2 : 参数: sqref=, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None , imeMode=None, operator=None, formula1='"val1,val2,val3"', formula2=None

sqref:A13

列表:"val1,val2,val3"