Mein Code ist
#Öffnet Vorlage für die Erstellung des Endberichts
excel = win32.dynamic.Dispatch('Excel.Application')
template = os.path.abspath((folderpath+'\Poop.xlsx'))
wb = excel.Workbooks.Open(template)
freshws= wb.Sheets("Fresh") #Blattnamen müssen perfekt übereinstimmen
secws= wb.Sheets("sec")
cur.execute("Select * from FIRALL")
freshdata=list(cur.fetchall())
#schreibt in das erste Blatt
datarowlen=0
for i,a in enumerate(freshdata):
datarowlen = len(a)
for j,b in enumerate(a):
freshws.Cells(i+1,j+1).Value = a[j]
cur.execute("Select * from SECVE")
secdata=list(cur.fetchall())
#schreibt in das zweite Blatt
datarowlen=0
for i,a in enumerate(secdata):
datarowlen = len(a)
for j,b in enumerate(a):
secws.Cells(i+1,j+1).Value = a[j]
#speichert den Bericht
wb.SaveAs()
wb.Close()
Der Fehler, den ich erhalte, wenn ich meinen Code ausführe, lautet
Traceback (most recent call last):
File "main.py", line 369, in
wb = excel.Workbooks.Open(template)
File ">", line 8, in Open
pywintypes.com_error: (-2147352567, 'Es ist ein Fehler aufgetreten.', (0, 'Microsoft Excel'
, "Microsoft Excel kann nicht auf die Datei 'Pfad zu Zeug------------------------
Poop Report\\Poop.xlsx' zugreifen. Es gibt mehrere mögliche Gründe:\n\n\u2022 Der Dateiname oder der Pfad existiert nicht.\n\u2022 Die Datei wird von einem anderen Programm verwendet.\
n\u2022 Die Arbeitsmappe, die Sie zu speichern versuchen, hat denselben Namen wie eine aktuell geöffnete Arbeitsmappe.", 'xlmain11.chm', 0, -2146827284), None)
Ich erhalte eine Popup-Meldung, die besagt, dass der Zugriff verweigert wird. Die Datei ist nicht schreibgeschützt und ich bin der Besitzer der Arbeitsmappe, die versucht wird zu öffnen. Ich habe versucht
win32.gencache.EnsureDispatch('Excel.Application')
Ich erhalte immer noch den gleichen Fehler. Gibt es etwas, das ich übersehe? Ich bin zu dynamic gewechselt, weil ich dachte, dass das Spätbinden diesen Fehler lösen würde.
Ein weiterer Fehler, den ich hatte, war der Pywins -2147418111 Fehler, als ich versuchte, diesen Code zu reparieren.