2016-08-09 9 views
0

Ich versuche, eine Blattfehlerausnahme für das Paket, das ich verwende (Openpyxl), abzufangen. Ich habe versucht, die Ausnahme wie from openpyxl.utils import SheetTitleException importieren, aber ich bekomme den Fehler "ImportError: cannot import name SheetTitleException". Als ich es gerade mit from openpyxl.utils import * importierte, erhalte ich den Fehler .Wie importiere ich Ausnahmen vom Paket (Openpyxl)?

Ich bin sicher, ich importiere es falsch, aber ich bin mir nicht sicher, wo ich falsch liege.

Here is the documentation on exceptions for Openpyxl.

Und hier ist der Code, den ich die Ausnahme fangen bin mit:

try: 
    bdws = bdwb[finalBDSheetName] 
except SheetTitleException: 
    messageBox("Invalid sheet title. Check your sheet title and try again.") 
    return 
+0

Klingt, als ob du versuchst, eine Anwendung um openpyxl zu erstellen. Als Paketautor würde ich dringend davon abraten. –

+0

@CharlieClark Können Sie erklären, warum? Ist das nicht dafür gedacht? – RWA4ARC

+1

Nein, es ist rund um das Dateiformat ausgelegt, dh. Datenverarbeitungs-Workflows. YMMV, aber wir werden keine Excel-ähnliche Funktionalität hinzufügen. –

Antwort

4

Der Titel der Seite, die Sie verknüpft sagt „openpyxl.utils.exceptions“.

Deshalb sollten Sie tun:

from openpyxl.utils.exceptions import SheetTitleException 
+0

Ich denke, das bringt mich weiter, aber jetzt bekomme ich 'KeyError: 'Arbeitsblatt notaworksheetname existiert nicht'. Wird die Ausnahme nicht korrekt abgefangen? – RWA4ARC

+0

@DouglasTrippe Sie fangen eine 'SheetTitleException', aber die Ausnahme ausgelöst wird' KeyError' ... – DeepSpace

+0

Ich denke, die SheetTitleException ist für ungültige Blattnamen, nicht fehlende dann? Das macht Sinn. Um hinzuzufügen, gibt es eine 'KeyError' Ausnahme? Weil ich versucht habe, es zu fangen, aber ich habe den gleichen Fehler. Edit: Putting KeyError zuerst funktioniert. – RWA4ARC

1

Wenn es so etwas wie andere Modul Ausnahmebehandlung ist, dass ich es

sein sollte getan haben
from openpyxl.utils.exceptions import SheetTitleException 

dann, es zu benutzen

except SheetTitleException as e: 
    # do something 
Verwandte Themen