Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak możemy użyć iter_rows () w pakiecie openpyxl Python?


Używam pakietu
openpyxl
w
Python (Canopy)
, aby używać plików programu Excel. Mamy ten samouczek z tego linku:

LINK
https://openpyxl.readthedocs.o ... -file
you can also use the openpyxl.worksheet.Worksheet.iter_rows() method:>>> tuple(ws.iter_rows('A1:C2'))
((<Cell Sheet1.A1>, <Cell Sheet1.B1>, <Cell Sheet1.C1>),
(<Cell Sheet1.A2>, <Cell Sheet1.B2>, <Cell Sheet1.C2>))>>> for row in ws.iter_rows('A1:C2'):... for cell in row:... print cell
<Cell Sheet1.A1>
<Cell Sheet1.B1>
<Cell Sheet1.C1>
<Cell Sheet1.A2>
<Cell Sheet1.B2>
<Cell Sheet1.C2>

Jak możemy zaimportować metodę
openpyxl.worksheet.Worksheet.iter_rows ()
w Pythonie? Użyłem tego kodu:
import openpyxl as op
ms = op.load_workbook('mtest.xlsx')ws = ms.activeop.worksheet.Worksheet.iter_rows()

Ten kod powraca:
type object 'Worksheet' has no attribute 'iter_rows'

Jaki jest problem?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak pokazano w

podręcznik
http://openpyxl.readthedocs.io ... .html, musisz wywołać metodę
iter_rows
w instancji arkusza, na przykład (for

openpyxl 2.5.14
https://openpyxl.readthedocs.i ... .html
albo wcześniej):
>>> for row in ws.iter_rows('A1:C2'):... for cell in row:... print cell

lub
>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):... for cell in row:... print(cell)
<Cell Sheet1.A1>
<Cell Sheet1.B1>
<Cell Sheet1.C1>
<Cell Sheet1.A2>
<Cell Sheet1.B2>
<Cell Sheet1.C2>

Jak mówi komunikat o błędzie, dzwonisz

rodzaj
Arkusz , który nie będzie działać; Musi być wezwany

Obiekt

:
op.worksheet.Worksheet.iter_rows() # wrong

Zobacz też

Ten przykład
https://stackoverflow.com/a/13962583/699224
w innej odpowiedzi.
Dla starszych wersji OpenpyXL może być konieczne dołączenie ieratorów podczas uruchamiania robotniczej - patrz

Ta sekcja
https://groups.google.com/foru ... yM... Nie jest to wymagane w przypadku nowszych wersji.
Oto kompletny przykład, który właśnie przetestowałem w Python Rept (z Openpyxl 1.8.3):
>>> import openpyxl as op
>>> wb = op.load_workbook('/tmp/test.xlsx', use_iterators=True)
>>> ws = wb.active
>>> for row in ws.iter_rows():... for cell in row:... print cell...
RawCell(row=1, column='A', coordinate='A1', internal_value=1.0, data_type='n', style_id='0', number_format='general')
RawCell(row=1, column='B', coordinate='B1', internal_value=10.0, data_type='n', style_id='0', number_format='general')...

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się