ich habe mal wieder etwas spezielles.
Ich möchte eine Excel mit verschiedenen „Header“ Zeilen aufteilen. Unten seht ihr, wie die Datei aussieht.
In allen Steps mit denen ich es versucht habe bekomme ich nur Fehler, oder eine Spalte zurück. Irgendwas mache ich hier wohl falsch. Die Datei möchte ich selbst vorher nicht verändern, da diese automatisch so übertragen wird.
Im Prinzip brauche ich also als Ergebnis zwei Spreadsheets mit den jeweils grau hinterlegten Feldern als Header.
Danach musst du nur noch anhand irgendeiner Bedingung in der ersten Tabelle auf die richtigen Zeilen filtern. Dort sind nämlich auch die Zeilen aus der zweiten Tabelle enthalten.
Wichtig: Für startLineNo zählt man nur gefüllte Zeilen. Obwohl die zweite Tabelle in meiner Beispieldatei in Zeile 12 anfangen, musste ich die Variable auf 7 (entspricht der 8ten gefüllten Zeile, weil 0-based indexing!) setzen.
danke erstmal dafür. Da die Zeilennummer der zweiten Tabelle aber unterschiedlich beginnen kann kann ich den Wert nicht fest eintragen. Dieser Wert Variiert quasi.
Man müsste also vorher irgendwie die Zeilennummer herausfinden, wo es wieder los geht.
In einem TextHTMLWriter berechnest du nun die Anzahl der Zeilen in der Tabelle. Das Ergebnis aus dem TextHTMLWriter benutzt du im zweiten Excelreader als startLineNo.
Du musst wahrscheinlich einen größeren Wert als 1 addieren müssen, damit das richtige Ergebnis rauskommt. Das kommt darauf an, wieviele gefüllte Spalten mit uninteressanten Daten vorhanden sind.
aber auch hier müsste ich mit Anzahl arbeiten. Das hilft mir bei der Automatisierung nicht wirklich.
Kann man denn auf Spaltennamen gehen?
Wie du in meinem Excel Beispiel siehst, könnte man zum Beispiel die erste Tabelle an Spalte B „Zahlungsdatum“ und die zweite Tabelle an Spalte B „Rechnungsnummer“ eingrenzen. Das Spreadsheet müsste jeweils in dieser Zeile als Header starten. So zumindest meine Theorie, aber ich weiß noch nicht, wie ich das umsetzen kann.
Da müsste dann noch ein Filter dahinter der die Rechnungsdaten aus dem Ergebnis Spreadsheet entfernt.
Das könnte man wieder über die Startzeile der Rechnungsdaten lösen. Eventuell gibt es aber noch eine einfachere Möglichkeit
→ Schritt 3 - 5 analog für die Rechnungsdaten wiederholen