Seite 1 von 1

Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Mittwoch 30. Januar 2013, 17:38
von Remington Steele
Hallo,

ich habe eine Excel-Datei mit einem Sheet, das bereits nach einem bestimmten Kriterium in einer Spalte (Wert 1) gefiltert ist. Dadurch verringert sich entsprechend die Zeilenanzahl. Nun kopiere ich per xlutils.copy dieses gefilterte Sheet. Ziel: Nur noch die übriggebliebenen Zeilen sollen in der fertigen Exceldatei übrigbleiben. Das hat auch ganz wunderbar geklappt, das Filterzeichen in der Spalte oben ist verschwunden. Als ich jedoch testweise die entsprechenden übriggebliebenen Zeilen in der neuen Datei kopiert habe (z.B. 5 Zeilen), staunte ich nicht schlecht, als ich beim Einfügen alle ursprünglichen Zeilen (!) (z.B. 100) eingefügt bekam, d.h. alle Zeilen sind also (teilweise) versteckt noch in der neuen Datei zu finden.

Daher meine Frage: Wie kann ich erreichen, dass er mir wirklich nur die nach Filterung in der ersten Datei sichtbaren Zeilen in das neue Sheet kopiert? Bisheriger Code (knapp umrissen):

Code: Alles auswählen

inBook = xlrd.open_workbook('Eingabedatei.xls', formatting_info=True)

# Kopieren der Eingabedatei
    for sheet in inBook.sheets():
    datei_final = xlutils.copy.copy(inBook)
    datei_final.save('Ausgabedatei.xls')

Re: Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Mittwoch 30. Januar 2013, 18:55
von Sirius3
Hallo Remington Steele,

und wo ist in Deinem Code der Filter?

Re: Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Mittwoch 30. Januar 2013, 20:48
von Remington Steele
Hi Sirius,

den habe ich jetzt nicht extra aufgeführt, um es nicht unnötig zu verkomplizieren. Denn die Datei liegt ja schon so vor... ich habe in einem der vorgehenden Schritte per autofilter zu der relevanten Spalte einen Filter hinzugefuegt. Diesen setze ich dann per Hand auf 1 und will nach Abspeichern wie oben beschrieben fortfahren. Kannst Du mir weiterhelfen?

Re: Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Mittwoch 30. Januar 2013, 21:47
von BlackJack
@Remington Steele: Der Filter entfernt ja nicht wirklich etwas sondern beeinflusst nur was Dir in der Tabellenkalkulation von den weiterhin bestehenden Inhalten angezeigt wird. Das passiert „live” das heisst ausser dem Filterkriterium ist nichts in der Datei gespeichert, insbesondere nicht welche Tabelleninhalte davon betroffen sind.

Re: Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Mittwoch 30. Januar 2013, 22:41
von Remington Steele
Ja, schon. Aber beim Kopieren des Sheets per xlutils sieht es im neuen Sheet wirklich so aus, als wären nur noch die wenigen Zeilen (z.B. 5) vorhanden. Ein Filterzeichen ist oben nicht mehr zu sehen (!). Kopiere ich dann diese 5 Zeilen und füge sie anderswo ein, werden 50 Zeilen eingefügt!

Dass das nun so ist habe ich ja festgestellt, die Frage ist wie gesagt, wie ich nun wirklich "nur" die 5 Zeilen in ein Sheet bekomme?

Re: Kopieren von gefilterten Sheets per xlutils.copy

Verfasst: Donnerstag 31. Januar 2013, 16:37
von Remington Steele
Kann mir denn hier niemand weiterhelfen? :(