Ich manipuliere ein Blatt, hauptsächlich alle Blätter löschen, aber die, die ich brauche. Ich werde alle Blätter durchlaufen und die Blätter löschen, die für meine Aufgabe nicht nützlich sind.Kann keine Arbeitsmappe nach dem Löschen von Blättern speichern - openpyxl
Nach dem Löschen habe ich versucht zu speichern, aber es wirft einen Fehler.
File "C:\Users\myUser\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py", line 130, in active
return self._sheets[self._active_sheet_index]
Hier ist mein Skript
wb = load_workbook("File.xlsx")
ws1 = wb["Employee Info"]
ws1.freeze_panes = None
ws_active = wb.get_sheet_by_name("Employee Info")
### delete other sheets but Employee Info
for sheet in wb.worksheets:
if sheet.title != 'Employee Info':
print("removing " + sheet.title)
wb.remove_sheet(sheet)
print("remaining sheets:")
for sheet in wb.worksheets:
print(" " + sheet.title)
### TODO
### loop through the files in a directory
### TODO
### see if readable by ETL
print("saving the wb")
wb.save("modified.xlsx")
nach dem Löschen, ich die Arbeitsmappe geprüft. Und es hat das Blatt, nach dem ich suche. Nur nicht sicher, warum es das restliche 1 Blatt nicht erkennt.
Um weitere Details hinzuzufügen, hat die Excel-Datei 8 Blätter, das Blatt, nach dem ich bin, ist auf dem 5. Blatt.
Klingt wie https://bitbucket.org/openpyxl/openpyxl/issues/748/ Bitte aktualisieren Sie Ihre Version von openpyxl. –