Seite 1 von 1
Dringend: Delete worksheet funktioniert nicht.
Verfasst: Freitag 14. März 2008, 14:37
von python_fan
Hallo,
ich möchte ein Arbeitsblatt löschen.
Mein code ist:
Code: Alles auswählen
excel_app = win32com.client.dynamic.Dispatch("Excel.Application")
excel_workbook = excel_app.Workbooks.Open(filename)
excel_workbook.Worksheets(1).Delete()
excel_workbook.Close(SaveChanges=1)
del excel_workbook
excel_app.Quit()
del excel_app
In der Excel-Datei sind drei Arbeitsblätter da. Nach der Ausführung vom Programm ist kein Arbeitsblatt gelöscht. Was habe ich falsch gemacht?
Verfasst: Freitag 14. März 2008, 14:46
von audax
mit `del variablenname` löscht du natürlich nur die Bindung des Sheets an `variablenname` und nicht mehr.
Verfasst: Freitag 14. März 2008, 15:00
von python_fan
Hallo audax,
kannst du vielleicht näher erläutern? Was muss ich machen, damit ich ein Arbeitsblatt löschen kann?
Ich habe festgestellt, ein leeres Blatt kann ich mit meinem Skript löschen aber nicht ein gefülltes Blatt.
Wer hat eine Idee davon?
Verfasst: Freitag 14. März 2008, 15:18
von audax
Oh, ich seh gerade, ich hab unrecht:
Die Zeile hab ich übersehen

Ingorier meine obigen Post also einfach.
Verfasst: Freitag 14. März 2008, 16:08
von HWK
Das beantwortet wohl auch Deinen anderen Thread:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import os
import win32com.client
excel_app = win32com.client.dynamic.Dispatch('Excel.Application')
excel_workbook1 = excel_app.Workbooks.Open(os.path.abspath('Mappe1.xls'))
excel_app.DisplayAlerts = False
for sheet in excel_workbook1.Worksheets:
if sheet.Name == 'Tabelle2':
sheet.Delete()
excel_app.DisplayAlerts = True
excel_workbook1.Close(SaveChanges=True)
del excel_workbook1
excel_app.Quit()
del excel_app
Du solltest Dich aber schon selbst ein bisschen mit VBA beschäftigen und nicht nur darauf vertrauen, dass Dir andere alle Lösungen liefern. Ich habe auch nur wenig Ahnung von VBA, mit der VBA-Hilfe in Excel habe ich aber Deine Probleme bisher lösen können.
MfG
HWK
Verfasst: Freitag 14. März 2008, 16:30
von python_fan
Hallo HWK,
vielen vielen Dank für deine Hilfe.
Wenn die Zeit erlaubt, möchte ich auch VBA kennenlernen. Nur in der kurzen Zeit weiß ich nicht, wie ich einsteigen kann.
Verfasst: Freitag 14. März 2008, 16:41
von Hyperion
python_fan hat geschrieben:
Wenn die Zeit erlaubt, möchte ich auch VBA kennenlernen. Nur in der kurzen Zeit weiß ich nicht, wie ich einsteigen kann.
Wenn ich HWK richtig verstanden hab, sollst Du vor allem mal in die VBA-Hilfe reingucken, da die Funtkionen und Parameter im Python Modul mit denen aus VBA übereinstimmen und Du daraus eben Infos und Rückschlüsse für Dein Python-Script ziehen kannst!
Verfasst: Montag 17. März 2008, 10:23
von python_fan
Hallo allerseits,
nochmal vielen Dank für Hilfen und Hinweise aus allen Seiten. Für z.B. delete worksheet habe ich versucht, das Problem selbst zu lösen. Das hat gescheitert bei Fehlen zweier Zeilen:
Code: Alles auswählen
excel_app.DisplayAlerts = False
...
excel_app.DisplayAlerts = True
Nun habe ich eine Frage: Wie finde ich schnell VBA-Hilfe oder VBA Beispiele, damit ich selbst lernen kann?
Verfasst: Montag 17. März 2008, 20:11
von HWK
Du hast ja sicher Excel installiert. Das sollte erst einmal reichen. Hier findest Du die bereits mehrfach zitierte VBA-Hilfe unter Extras - Makro - Visual Basic-Editor. Blätter dort doch mal ein bisschen. Es finden sich hier viele Beispiele.
Ansonsten: Nimm doch einmal ein Makro in Excel auf und gehe auf Extras - Makro - Makros - Bearbeiten. Dies ist ein guter Start für Deine Pythonscripts.
MfG
Hwk