Seite 1 von 1

Re: xls-Datei in csv-Datei umwandeln

Verfasst: Samstag 3. Oktober 2015, 11:04
von Sirius3
Jetzt hast Du zwei Beispiele mit zwei unterschiedlichen Headern und völlig unterschiedlichen Spaltenbedeutungen. Wie viele unterschiedliche Tabellenformate hast Du denn? Willst Du die alle in die selbe Form bringen?

Re: xls-Datei in csv-Datei umwandeln

Verfasst: Dienstag 6. Oktober 2015, 22:06
von pixewakb
Ich würde das irgendwann hart in den Quelltext codieren und zwar sichere Spaltenköpfe, wie z. B. "Artikel" oder "Hauptgruppe" in einer Liste einfach bereitstellen.

Code: Alles auswählen

header = ["ID", "Was anderes", "Was ganz anderes", 'Artikel', '12345X']
spaltenkoepfe = ["Artikel", "Hauptgruppe"]
kopfzeile = False

for item in header:

    if item in spaltenkoepfe:

        kopfzeile = True
        print("Erste Zeile ist ein Spaltenkopf!")
        break
Das ist ein ganz einfaches Beispiel, erweitern könnte man das Beispiel z. B. indem man mal den ganzen Datensatz durchsucht, ob nach der ersten Zeile der Treffer noch irgendwo auftauchte. Das wäre dann entweder ein Hinweis dafür, dass der Datensatz beschädigt ist oder aber ein Hinweis dafür, dass du einen falsch negativen Treffer hattest und daher der Spaltenkopf als Unterscheidungskriterium nicht geeignet ist. Ich denke nicht, dass andere Herangehensweisen für Dich Sinn machen. Die obige Lösung ist vielleicht nicht elegant, könnte sich aber auszahlen. Wenn man wüsste womit Du sonst noch so zu tun hast, könnte man vielleicht elegantere Lösungen finden.

BTW: Der Quellcode dient nur zur Demonstration, um die Idee zu verdeutlichen. Das ist nicht schön geschrieben...

Hinweis von sirius3 gelesen...

Re: xls-Datei in csv-Datei umwandeln

Verfasst: Dienstag 6. Oktober 2015, 22:18
von Sirius3
@pixewakb: das ist nicht nur nicht schön, sondern ausgesprochener Quatsch. Hast Du Dir schonmal überlegt, wann die if-Bedingung erfüllt ist?

Re: xls-Datei in csv-Datei umwandeln

Verfasst: Dienstag 6. Oktober 2015, 22:42
von pixewakb
Danke, ich habe es korrigiert. Ich hatte das gerade sehr zügig zusammengetippt. Ich bin mir unsicher, ob der Fragesteller noch am Thema interessiert ist, in diesem Fall könnte der Code - schlecht geschrieben - vielleicht ein Impuls sein, das Thema von einer anderen Seite noch mal anzugehen.