Seite 1 von 1
CSV-Import/Export
Verfasst: Do 2. Mai 2019, 14:54
von Robbie
gelöst
Hallo, leider konnte ich zu meinem Problem hier keine Lösung finden, daher versuche ich es mal mit einem neuen Eintrag.
Ich habe eine csv-Datei, die durch ein GeoInformationsSystem (GIS) erzeugt und nach der Bearbeitung dort auch wieder eingelesen wird.
Beispielhafter Aufbau der Datei:
Text 1|Text 2| |Text 4| | |Text 7|Text 8|
Das Pipe-Zeichen dient dabei als Feldtrenner. Die "Spaltenanzahl" (insg. 38) ist fest vorgegeben.
Wenn ein Feld im GIS nicht belegt wurde, so wird hier ein Leerzeichen ausgegeben.
Es folgt auf den Text (oder das Leerzeichen) immer ein Pipe-Zeichen, auch am Ende der Zeile.
Der Textimport sowie das Bearbeiten stellt kein Problem dar, jedoch der Export. Egal welche Einstellungen ich wähle, es wird das letzte Pipe-Zeichen nicht übernommen. Dies hat zur Folge, dass beim Einlesen im GIS das letzte Feld (im Beispiel 'Text 8') nicht erkannt und somit nicht übertragen wird.
Sicher gibt es da eine Lösung über Macros, diese sind jedoch bei uns nicht zugelassen und fallen somit raus.
Hat sonst jemand eine Idee, wie ich diese Dateien vom Aufbau so erhalte, wie ich sie ursprünglich importiert habe?
Mfg Robbie
Re: CSV-Import/Export
Verfasst: Do 2. Mai 2019, 15:55
von Pit Zyclade
wenn | der Feldtrenner ist, legt er ja auch nur die Feldtrennung fest. Das Zeilenende hingegen wird durch das Zeilenende bestimmt. Beim Import wird das Feld danach auch noch angesprochen, aber bleibt leer... Den Export kann man vielleicht dann auf 39 Felder triksen?
Re: CSV-Import/Export
Verfasst: Do 2. Mai 2019, 16:16
von Robbie
So was ähnliches hab ich vermutet. Am Ende der Zeile gibt es ja eigentlich nichts mehr zu trennen.
Tricksen ist an dieser Stelle sicher möglich, gestaltet sich aber schwierig, da viele Mitarbeiter mit diesem Werkzeug richtig umgehen können müssten. Und leider fällt es beim Einlesen im GIS nicht auf, ob das letzte Feld übernommen wurde oder nicht (ist recht selten belegt). Wer da also nicht drauf achtet, erzeugt evtl. unbeabsichtigt fehlerhafte Daten.
Alles nicht so schön, aber...
... heißt für mich, mal an den Softwarehersteller heranzutreten. Entweder gültiges (logisches) Format ausgeben oder beim Einlesen der Datei das letzte Pipe-Zeichen nicht zu fordern.
Jedenfalls vielen Dank für die schnelle Antwort

Re: CSV-Import/Export
Verfasst: Do 2. Mai 2019, 17:28
von Pit Zyclade
Du liest doch in calc ein?
Dann definiere nach dem Import und der Bearbeitung einen Druckbereich (Format->Druckbereich->) mit Breite 39, d.h. von A bis AM in der Länge der Füllung.
Dann sichere unter CSV, Filtereinstellung wie gewünscht ändern (Feldtrennung | )
Fertig!
Jede Handarbeit ist bei Mitarbeitern störend, also mache eine klar definierte Arbeitsanweisung.
Auch wenn ein Makro vielleicht besser ist, die Länge der Tabelle muß sowieso entweder als Maximum bekannt sein oder wieder durch Markierung festgelegt werden...
Re: CSV-Import/Export
Verfasst: Fr 3. Mai 2019, 08:47
von Robbie
Das mit dem Druckbereich funktioniert leider nicht. Ich vermute es liegt daran, dass die leeren Felder (im Bereich 1-38 immer unterschiedliche) nicht als leer ausgegeben '||' sondern mit einem Leerzeichen versehen werden '| |'. Somit ja dann doch befüllt sind.
Anders bei Spalte 39. Nehme ich diese in den Druckbereich mit hinein, so sind die Felder dort ja wirklich leer und finden keine Berücksichtigung beim Speichern als csv.
Habe aber heute früh schon einen Ansatz gefunden. Beauftragt war das Pipe-Zeichen ganz eindeutig als "Feldtrenner" und nicht als schließendes Zeichen. Somit versuche ich es mal über die Schiene. Denke, das ist der sauberste Weg, hier an der Ursache zu arbeiten, als eine doch recht anfällige Umgehungslösung an viele Mitarbeiter zu geben. Bearbeitet werden in regelmäßigen Abständen bis zu 3000 dieser Dateien, die insg. rund 80.000 Zeilen beinhalten. Da ist eh schon Vorsicht geboten.
Nochmals vielen Dank

Re: CSV-Import/Export
Verfasst: Fr 3. Mai 2019, 10:41
von Pit Zyclade
Robbie hat geschrieben: ↑Fr 3. Mai 2019, 08:47
Das mit dem Druckbereich funktioniert leider nicht. Ich vermute es liegt daran, dass die leeren Felder (im Bereich 1-38 immer unterschiedliche) nicht als leer ausgegeben '||' sondern mit einem Leerzeichen versehen werden '| |'. Somit ja dann doch befüllt sind.
Anders bei Spalte 39. Nehme ich diese in den Druckbereich mit hinein, so sind die Felder dort ja wirklich leer und finden keine Berücksichtigung beim Speichern als csv.
Spalte AM ist ja nun mal die 39. Das war von mir bereits vorgegeben. Man muß beim Filter aber für Text die Vorgabe " entfernen, also leeren.
Schau dir bitte mal mein Exportprodukt mit einem Editor an:
Habe aber heute früh schon einen Ansatz gefunden. Beauftragt war das Pipe-Zeichen ganz eindeutig als "Feldtrenner" und nicht als schließendes Zeichen.
Wo bzw. wie willst du denn das abschließende Zeichen (in calc) vorgeben? Letztendlich muß ja immer das Zeilenendezeichen kommen...
... als eine doch recht anfällige Umgehungslösung an viele Mitarbeiter zu geben. Bearbeitet werden in regelmäßigen Abständen bis zu 3000 dieser Dateien, die insg. rund 80.000 Zeilen beinhalten. Da ist eh schon Vorsicht geboten.
Keine Frage. Jede einfachere Lösung wäre besser.