iterowanie po szeregu wierszy za pomocą ws.iter_rows w zoptymalizowanym czytniku openpyxl
Muszę odczytać plik xlsx zawierający komórki 10x5324
To jest sedno tego, co próbowałem zrobić:
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
Kod wymagał zbyt wiele czasu, aby go uruchomić (powinienem wykonywać operacje, nie drukować) i po chwili stałem się niecierpliwy i anulowałem go.
Masz jakiś pomysł, jak mogę to zoptymalizować w czytniku? Muszę iterować po szeregu wierszy, a nie po wszystkich wierszach. To właśnie próbowałem, ale to nie tak:
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
Czy jest jakiś sposób, w jaki mogę to zrobić bez funkcji zakresu?
Myślę, że jednym ze sposobów byłoby:
for i in ws.iter_rows[1:]:
if i.row == startrow:
continue
print i[col['Time']].value.hour
if i.row == endrow:
break
ale czy jest bardziej eleganckie rozwiązanie? (to nie działa albo btw)