перебор ряда строк с использованием ws.iter_rows в оптимизированном ридере openpyxl

Мне нужно прочитать файл xlsx из 10x5324 ячеек

Суть того, что я пытался сделать:

from openpyxl import load_workbook
filename = 'file_path'

wb = load_workbook(filename)
ws = wb.get_sheet_by_name('LOG')

col = {'Time':0 ...}

for i in ws.columns[col['Time']][1:]:
    print i.value.hour

Код выполнялся слишком долго, тогда как должен (Я выполнял операции, а не печатал) и через некоторое время я потерял терпение и отменил его.

Есть идеи, как это сделать в оптимизированной читалке? Мне нужно перебрать диапазон строк, а не все строки. Вот что я пробовал, но это неправильно:

wb = load_workbook(filename, use_iterators = True)
ws = wb.get_sheet_by_name('LOG')
for i in ws.iter_rows[1:]:
    print i[col['Time']].value.hour

Могу ли я сделать это без функции диапазона?

Думаю, один из способов сделать это:

for i in ws.iter_rows[1:]:
    if i.row == startrow:
        continue
    print i[col['Time']].value.hour
    if i.row == endrow:
        break

но есть ли более элегантное решение? (кстати, это тоже не работает)

10
задан Ali Haroon 16 May 2012 в 08:28
поделиться