xls-Datei in csv-Datei umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sirius3
User
Beiträge: 17778
Registriert: Sonntag 21. Oktober 2012, 17:20

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?
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

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...
Zuletzt geändert von pixewakb am Dienstag 6. Oktober 2015, 22:40, insgesamt 2-mal geändert.
Sirius3
User
Beiträge: 17778
Registriert: Sonntag 21. Oktober 2012, 17:20

@pixewakb: das ist nicht nur nicht schön, sondern ausgesprochener Quatsch. Hast Du Dir schonmal überlegt, wann die if-Bedingung erfüllt ist?
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

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.
Antworten