嵌套的if-else语句未返回正确值

时间:2019-06-26 20:08:08

标签: python excel openpyxl

我正在尝试打印Excel文件中是否包含列值。

首先,我使用了if语句,然后使用了两个elif,最后使用了else。然后我将elifs改为if-else语句,因为我认为这是问题所在,但我仍然得到不正确的值。

if 'Strip Circuit ID' in ws.columns:
    print('Contains Strip Circuit ID')
    #col6
    cell = ws.cell(row=1, column=6)
    print(cell.value)
else:
    if 'STRIP_EC_CIRCUIT_ID' in ws.columns:
        print('Contains STRIP_EC_CIRCUIT_ID')
        #col9
        cell = ws.cell(row=1, column=9)
        print(cell.value)
    else:
        if 'Circuit ID' in ws.columns:
            print('Contains Circuit ID')
            #col6
            cell = ws.cell(row=1, column=6)
            print(cell.value)
        else:
            print('NONE')

我希望当文件具有“ Strip Circuit ID”,“ STRIP_EC_CIRCUIT_ID”或“ Circuit ID”时,它将在if-else语句中返回值,但是程序仅返回“ NONE”。 / p>

1 个答案:

答案 0 :(得分:1)

ws.columns返回一个列生成器,每个列都包含单元格,因此检查没有任何意义。您必须检查每一列中每个单元格的值。

for col in ws.columns:
    for cell in col:
        if "Circuit ID" in cell.value:
            print(cell.coordinate)