2017-09-20 1 views
0

So stieß ich auf ein Problem mit remove_sheet() mit openpxyl, dass ich keine Antwort finden kann. Wenn ich den folgenden Code ausführen:Openpyx nicht Blätter aus erstellten Arbeitsmappe korrekt entfernen

import openpyxl 

wb = openpyxl.Workbook() 
ws = wb.create_sheet("Sheet2") 
wb.get_sheet_names() 
['Sheet','Sheet2'] 
wb.remove_sheet('Sheet')  

bekomme ich folgende Fehlermeldung:

ValueError: list.remove(x): x not in list 

Es funktioniert nicht, auch wenn ich versuche, wb.remove_sheet(0) oder wb.remove_sheet(1), ich den gleichen Fehler. Gibt es etwas, das mir fehlt?

Antwort

2

remove.sheet() ist ein Blattobjekt, nicht der Name des Blattes! Also für Ihren Code

Sie

for sheet in wb.worksheets: 
    if sheet.title == 'Sheet': 
     wb.remove_sheet(sheet) 

In diesem Sinne versuchen könnten, wird remove_sheet auch einen Index nicht gegeben, weil es auf dem tatsächlichen Sheet-Objekt arbeitet.

Hier ist ein good source von Beispielen (obwohl es nicht das gleiche Problem ist, das Sie konfrontiert sind, zeigt es nur, wie Sie die remove_sheet-Methode richtig aufrufen)!

Verwandte Themen