Openpyxl Как получить значение из листа по индексу - PullRequest
0 голосов
/ 13 июня 2019

Об этом спрашивали несколько раз, но ни один из старых ответов не работает для меня.

Я пересекаю первую строку в листе, но мой метод достигает значения None, прежде чем оно попадет в первую пустую ячейку. Таким образом, похоже, что порядок столбцов не такой, как показано в Excel, и что пустые столбцы смешаны. Это в версии openpyxl: 2.6.2

def countActiveColumns(sheet):
    count = 0
    # note max_row = 1 here
    for row in sheet.iter_rows(min_row=1, min_col=1, max_row=1, max_col=1000):
        for cell in row:
            print('countActiveColumns - content %s' %(cell.value))
            if cell.value == None:
                print('countActiveColumns - count %s' %(count))
                return count
            count += 1

Итак, моя первая строка содержит «Идентификатор валюты», «Множественное имя», «Имя единственного числа», «StartBalance», «Путь к изображению», «Изображение каталога», но вывод равен

New SheetInfo (Currencies) -> table currencies
countActiveColumns - content Currency Id
countActiveColumns - content Plural Name
countActiveColumns - content Singular Name
countActiveColumns - content Image Path
countActiveColumns - content None
countActiveColumns - count 4

Я также пробовал это с похожими результатами

def old_countActiveColumns(sheet):
    count = 0
    for col in range(1, 100):
        value = sheet.cell(1, col).value
        print('countActiveColumns - value %s' %(value))
        if value != None:
            print('countActiveColumns - %d columns' %(col-1))
            return col-1
...