win32com Excel.Application kann Dokumente nicht mehr öffnen

Das funktionierte letzte Woche, aber aus irgendeinem Grund hörte es heute auf, vielleicht wegen des neuen Jahres?

def remove_strikethroughs(xlsx): excel = win32com.client.Dispatch('Excel.Application') xl = pd.ExcelFile(xlsx) sheet_names = xl.sheet_names for sheet in sheet_names: if any(tab in sheet for tab in tabs_used): #print (sheet) wb = excel.Workbooks.Open(xlsx) ws = wb.WorkSheets(sheet) for cell in ws.Range('A5:B150'): if cell.Font.Strikethrough == True: cell.value = '[MDU]' + str(cell) wb.Save() wb.Close() excel.Visible = True excel.DisplayAlerts = True excel.Application.Quit() 

Ich bekomme folgende Fehlermeldung:

 "AttributeError: '<win32com.gen_py.Microsoft Excel 15.0 Object Library.Workbooks instance at 0x20920640>' object has no attribute 'open'" 

Kann mir bitte jemand helfen?

Vielen Dank!

Solutions Collecting From Web of "win32com Excel.Application kann Dokumente nicht mehr öffnen"

Es gibt keine open Methode, es ist Open . Python unterscheidet zwischen Groß- und Kleinschreibung 🙂

Seltsamerweise stieß ich auf das gleiche Problem wie @AndyDo. Der Code, mit dem ich ursprünglich auf die Excel-Anwendung zugegriffen habe, funktioniert nicht mehr.

Original (nicht arbeiten):

** Hinweis – Es ist klar, dass ich die Groß- / Kleinschreibung nicht mit dem Beispiel übereinstimmt, das ich verwendet habe. Ich bin mir jedoch nicht sicher, warum der Code zuvor errorsfrei funktioniert hat.

Quelle: Wie öffne ich eine passwortgeschützte Excel-file mit Python?

 import win32com.client as w3c xlapp = w3c.Dispatch('Excel.Application') xlwb = xlapp.Workbooks.open(file.xlsx, False, True, None, file_password) xlsheet = xlwb.WorkSheets('my_sheet_name') 

Dann habe ich den Fall aktualisiert, wie im folgenden Code zu sehen ist, um den Attributerrors zu korrigieren.

Überarbeitet (funktioniert):

Quelle – Python Excel Mini-Kochbuch

 import win32com.client as w3c xlapp = w3c.gencache.EnsureDispatch('Excel.Application') xlwb = xlapp.Workbooks.Open(file.xlsx, False, True, None, file_password) xlsheet = xlwb.Worksheets('my_sheet_name') 

Ich frage mich, ob eine andere offene Arbeitsmappe, in der die Bearbeitungsleiste aktiviert wurde, das Problem beeinflusst hat. Ich werde mehr Nachforschungen anstellen müssen.