Об этом спрашивали несколько раз, но ни один из старых ответов не работает для меня.
Я пересекаю первую строку в листе, но мой метод достигает значения 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