/ / openpyxl brak błędu przypisania - python, excel, python-3.x, openpyxl

openpyxl błąd przynależności - python, excel, python-3.x, openpyxl

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 № 1

Wedł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