iterando en un rango de filas usando ws.iter_rows en el lector optimizado de openpyxl

Necesito leer un archivo xlsx de 10x5324 celdas

Esta es la esencia de lo que estaba tratando de hacer:

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

El código tardó demasiado en ejecutarse, entonces debería hacerlo (estaba realizando operaciones, no imprimiendo) y después de un tiempo me impacienté y lo cancelé.

¿Alguna idea de cómo puedo trabajar en el lector optimizado? Necesito iterar sobre un rango de filas, no sobre todas las filas. Esto es lo que intenté, pero está mal:

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

¿Hay alguna manera de que pueda hacerlo sin la función de rango?

Supongo que una forma de hacerlo sería:

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

¿Pero hay una solución más elegante? (Eso tampoco funciona por cierto)

Respuestas a la pregunta(2)

Su respuesta a la pregunta