que necesito para leer un archivo xlsx de 10x5324 célulasiteración en un rango de filas utilizando ws.iter_rows en el lector optimizada de openpyxl
Ésta es la esencia de lo que yo 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 tardaba demasiado en ejecutarse, entonces debería (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 he intentado, pero es equivocado:
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 hacerlo sin la función de rango?
Creo que una manera 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 no es una solución más elegante? (esto no funciona bien por cierto)
para agregar a la solución 2 - puede agregar una instrucción else para salir de para, para detener la iteración sobre todas las filas una vez que está pasada la parada –