Python 3.5 openpyxl 2.4
Cześć wszystkim, mam tutaj prosty, ale mylący problem. Dla FYI jest dokumentacja API odnosząca się do arkusza roboczego
http://openpyxl.readthedocs.io/en/default/api/openpyxl.worksheet.worksheet.html
Oto prosty kod do testowania.
# -*- coding: utf-8 -*-
from openpyxl import load_workbook
wb2 = load_workbook("example.xlsx")
print (wb2.get_sheet_names())
ws = wb2.get_sheet_by_name("Sheet1")
print (type(ws))
print (ws.calculate_dimension())
list = []
for i in ws.rows:
print ("n")
for cell in i:
list.append(cell.value)
print(str(cell.value).encode("utf-8"))
print (type(ws))
ws.get_highest_row()
oto co się ostatecznie okazało
<class "openpyxl.worksheet.worksheet.Worksheet">
Traceback (most recent call last):
File "script.py", line 17, in <module>
ws.get_highest_row()
AttributeError: "Worksheet" object has no attribute "get_highest_row"
Wpadam na problem tam, gdzie to mówi get_highest_row
nie jest atrybutem. Wydaje się to poprawne, ponieważ ta funkcja jest w klasie worksheet.worksheet
(z dokumentu API), i ws
jest worksheet.worksheet.Worksheet
(Nie mam pojęcia, co to jest) może dziedziczyć niektóre funkcje, aby nadal można było wywoływać dimension()
, ale czy ktoś może mi powiedzieć, jak to naprawić? Chcę przejrzeć jeden konkretny wiersz lub kolumnę i wykonać sortowanie o zmiennej długości kolumn i wierszy. Każda pomoc jest doceniana!
Odpowiedzi:
8 dla odpowiedzi № 1Według https://bitbucket.org/openpyxl/openpyxl/issues/278/get_highest_row-column-are-unreliable
W najnowszym openpyxl
, który został usunięty get_highest_row
i get_highest_column
metoda. Zostały one zastąpione przez max_row
i max_column
własność
1 dla odpowiedzi nr 2
Próbowałem go z openpyxl 2.3.5 i otrzymałem następujące
/usr/local/lib/python3.5/site-packages/openpyxl/worksheet/worksheet.py:350: UserWarning: Wezwanie do przestarzałej funkcji lub klasy get_highest_row (Użyj właściwość max_row). def get_highest_row (self):
W związku z tym, że używasz 2.4, prawdopodobnie usunęli go stamtąd, ponieważ został już przestarzały w wersji 2.3.5.
EDYCJA: W dokumentacja dla 2.4 ta metoda nie jest już wspomniana