ho bisogno di leggere un file xlsx di 10x5324 celluleiterazione in un intervallo di righe utilizzando ws.iter_rows nel lettore ottimizzata di openpyxl
Questa è l'essenza di quello che stavo cercando di fare:
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
Il codice impiegava troppo tempo per essere eseguito, quindi (dovevo eseguire operazioni, non stampare) e dopo un po 'sono diventato impaziente e l'ho annullato.
Qualche idea su come posso lavorarlo nel lettore ottimizzato? Ho bisogno di scorrere su un intervallo di righe, non su tutte le righe. Questo è quello che ho provato, ma è sbagliato:
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
C'è un modo per farlo senza la funzione di gamma?
immagino un modo per farlo sarebbe:
for i in ws.iter_rows[1:]:
if i.row == startrow:
continue
print i[col['Time']].value.hour
if i.row == endrow:
break
, ma c'è una soluzione più elegante? (che non funziona neanche btw)
da aggiungere alla soluzione 2 - è possibile aggiungere un'altra istruzione per uscire dal for, per interrompere l'iterazione su tutte le righe una volta che è passato –