Вложенные операторы if-else не возвращают правильное значение - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь напечатать, содержится ли значение столбца в файле Excel.

Сначала я использовал оператор if, затем два elifs и, наконец, 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'.

1 Ответ

1 голос
/ 27 июня 2019

ws.columns возвращает генератор столбцов, каждый из которых содержит ячейки, поэтому проверка не имеет никакого смысла.Вы должны проверить значение каждой ячейки в каждом столбце.

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