Seite 1 von 1
Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Dienstag 22. Januar 2013, 16:03
von Remington Steele
Wie im Beispiel hier:
http://stackoverflow.com/questions/2967 ... in-pywin32
möchte ich einen Autofilter für einige Spalten eines Excel-Sheets nutzen. Leider schaffe ich es nicht, den Pfad korrekt anzugeben, obwohl zumindest der angegebene Dateiname in meinen Augen korrekt ist. Der letzte Versuch sieht wie folgt aus (die erste Zeile zeigt hierbei das (erfolgreiche) Speichern der Datei nach Schreiben diverser Zeilen und vor der gewünschten Filterung):
Code: Alles auswählen
datei.save('Dateiname ' + str(tag-1) + '.' + str(monat) + '.' + str(jahr) + '.xls')
dat_name = 'Dateiname ' + str(tag-1) + '.' + str(monat) + '.' + str(jahr) + '.xls'
dat_path = os.path.join(dat_name)
x1.Workbooks.Open(dat_path)
xl.ActiveWorkbook.ActiveSheet.Columns("A:I").AutoFilter(1)
x1.ActiveWorkbook.Close(SaveChanges=1) # 1 is True, 0 is False
x1.Quit()
Leider erscheint immer die Meldung "Ausnahmefehler eingetreten" (0, u'Microsoft Excel', u"'Dateiname 21.01.2013.xls' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens...")
Kann mir jemand weiterhelfen?
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Dienstag 22. Januar 2013, 18:53
von Sirius3
Hallo Remington,
1. Strings baut man nicht mit + zusammen, dafür gibt es format
2. Leerzeichen in Dateinamen sind böse.
3. os.path.join macht gar nichts, weil es mehrere Pfadstücke zusammenfügt, Du aber nur eines angibst.
4. Workbook.Open braucht einen absoluten Dateinamen
Code: Alles auswählen
dat_name = 'Dateiname_{0:02d}.{1:02d}.{2:04d}.xls'.format(tag-1,monat,jahr)
datei.save(dat_name)
dat_path = os.path.abspath(dat_name)
x1.Workbooks.Open(dat_path)
xl.ActiveWorkbook.ActiveSheet.Columns("A:I").AutoFilter(1)
x1.ActiveWorkbook.Close(SaveChanges=1) # 1 is True, 0 is False
x1.Quit()
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 12:24
von lunar
Sirius3 hat geschrieben:2. Leerzeichen in Dateinamen sind böse.
Die 90er sind vorbei…
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 13:08
von /me
lunar hat geschrieben:Sirius3 hat geschrieben:2. Leerzeichen in Dateinamen sind böse.
Die 90er sind vorbei…
90er? AFAIR konnte der C=64 das schon ...
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 14:03
von Remington Steele
Vielen Dank Sirius, das hat geholfen. Wobei mir übrigens das mit join schon bewusst war, ich aber gerade keine Alternative wusste. Auch die Leerzeichen haben bisher keine Probleme bereitet, aber das Entfernen Selbiger hat tatsächlich zur Lösung beigetragen.
Kann ich nun auch den Autofilter-Wert gleich auf einen gewünschten Wert setzen, z.B. 1? (habe in dieser Spalte nur Zahlen)
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 14:29
von BlackJack
@/me: Ja das kann der C64 beziehungsweise die dafür gängigen Dateisysteme. Ich fand den Umstieg von 16 Zeichen-Namen zu 8.3 auf DOS damals ziemlich einschränkend. Ich hatte damals einen Norton Commander-Clon der mit den damals üblichen „descript.ion”-Dateien umgehen konnte und man damit zu jedem Dateinamen noch eine Beschreibungszeile ablegen konnte.
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 14:33
von Sirius3
lunar hat geschrieben:Sirius3 hat geschrieben:
2. Leerzeichen in Dateinamen sind böse.
Die 90er sind vorbei…
Dann versuch mal Dein Pythonmodul 'mein Modul.py' zu nennen.

Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Mittwoch 23. Januar 2013, 14:50
von Remington Steele
Hm und zum Thema

, kann man den Autofilter auf einen bestimmten Wert setzen?
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Donnerstag 24. Januar 2013, 16:35
von Remington Steele
Remington Steele hat geschrieben:kann man den Autofilter auf einen bestimmten Wert setzen?
Geht das womöglich gar nicht?
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Samstag 26. Januar 2013, 10:33
von lunar
@Sirius3 Das hat nichts mit Dateinamen zu tun, sondern mit der Syntax von Python, die keine Leerzeichen erlaubt. Mit dem richtigen Import Hook kann ich Module auch aus Dateien mit Leerzeichen im Namen laden.
Re: Autofilter von pyWin32 nutzen - Pfad korrekt angeben?
Verfasst: Dienstag 29. Januar 2013, 11:35
von Remington Steele
Lässt sich kein Wert angeben, nach dem der Autofilter filtern soll - kann mir jemand ggf. bitte zumindest bestätigen, dass das nicht möglich ist?