iterando em um intervalo de linhas usando ws.iter_rows no leitor otimizado de openpyxl
Eu preciso ler um arquivo xlsx de 10x5324 células
Esta é a essência do que eu estava tentando fazer:
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
O código estava demorando muito para rodar, então deveria (eu estava executando operações, não imprimindo) e depois de um tempo eu fiquei impaciente e cancelei.
Alguma idéia de como eu posso trabalhar isso no leitor otimizado? Preciso iterar em um intervalo de linhas, não em todas as linhas. Isso é o que eu tentei, mas está errado:
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
Existe alguma maneira de fazer isso sem a função range?
Eu acho que uma maneira de fazer isso seria:
for i in ws.iter_rows[1:]:
if i.row == startrow:
continue
print i[col['Time']].value.hour
if i.row == endrow:
break
mas existe uma solução mais elegante? (Isso não funciona nem entre)