Export (bzw. Speichern als CSV) Probleme mit "
Moderator: Moderatoren
Export (bzw. Speichern als CSV) Probleme mit "
Hallo,
ich möchte mit OOCalc eine Tabelle mit 5600 Datensätzen exportieren. Die Schnittstelle verlangt, das jedes Attribut (Spalte) in " eingefasst ist, das lässt sich nicht ändern.
Ein Datensatz soll also wie folgt aussehen:
"1221929", "Test Text", "Inhalt", "999 Boston"
usw. und das 5600 mal. Es klappt aber nur das OOCalc die Texte mit einem Space in " setzt. Das sieht bisher also immer so aus:
1221929,"Test Text",Inhalt,"999 Boston"
Und das reicht mir leider nicht. Jemand einen Tipp? Was man da machen kann?
ich möchte mit OOCalc eine Tabelle mit 5600 Datensätzen exportieren. Die Schnittstelle verlangt, das jedes Attribut (Spalte) in " eingefasst ist, das lässt sich nicht ändern.
Ein Datensatz soll also wie folgt aussehen:
"1221929", "Test Text", "Inhalt", "999 Boston"
usw. und das 5600 mal. Es klappt aber nur das OOCalc die Texte mit einem Space in " setzt. Das sieht bisher also immer so aus:
1221929,"Test Text",Inhalt,"999 Boston"
Und das reicht mir leider nicht. Jemand einen Tipp? Was man da machen kann?
Hey Samuel.
Wenn du die Zahlen auch als Text haben willst, musst du sie erst in OOo umwandeln -> am besten mit einer Hilfsspalte.
Das zusätzliche Leerzeichen nach dem Komma - falls das wirklich benötigt wird, wirst du auf den Weg gar nicht hinbekommen.
Da bleibt dann nur.... ein Makro.
Gruss
Thomas
Zahlen werden per Definition nicht in doppelte Hochzeichen gesetzt. Nur dadurch werden sie auch wieder automatisch erkannt. Bei "inhalt" hast du sie sicher nur vergessen, da kommen nämlich automatisch welche hin.1221929,"Test Text",Inhalt,"999 Boston"
Wenn du die Zahlen auch als Text haben willst, musst du sie erst in OOo umwandeln -> am besten mit einer Hilfsspalte.
Das zusätzliche Leerzeichen nach dem Komma - falls das wirklich benötigt wird, wirst du auf den Weg gar nicht hinbekommen.
Da bleibt dann nur.... ein Makro.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Wandle vor dem Speichern als csv alle Zahlen in Strings um. Unter Zuhilfenahme Suchen-Ersetzen geht das mit den regulären Ausdrücken:
suchen nach: [:digit:]*
ersetzen durch: '&
evtl. kannst Du die Suche begrenzen indem Du z.B. eine Spalte selektierst.
Wähle nun Speichern unter und dort txt/csv und stelle als Feldtrenner Komma und als Texttrenner Anführungsstriche ein.
Gruß
Stephan
suchen nach: [:digit:]*
ersetzen durch: '&
evtl. kannst Du die Suche begrenzen indem Du z.B. eine Spalte selektierst.
Wähle nun Speichern unter und dort txt/csv und stelle als Feldtrenner Komma und als Texttrenner Anführungsstriche ein.
Gruß
Stephan
Super hat geklappt, danke!!!!
Aber ich bemerke jetzt das nächste Problem, er findet gnadenlos jede Zahl.
Telefonnummern sehen danach so aus:
+'1/111 111-1111
vorher war es:
+1/111 111-1111
selbiges gilt für Textfelder mit Nr drin, sie sehen jetzt so aus:
TEXT '2
was vorher so war:
TEXT 2
Kann man das verhindern? Das er sich nur Zahlenfelder anguckt oder so?
Aber ich bemerke jetzt das nächste Problem, er findet gnadenlos jede Zahl.
Telefonnummern sehen danach so aus:
+'1/111 111-1111
vorher war es:
+1/111 111-1111
selbiges gilt für Textfelder mit Nr drin, sie sehen jetzt so aus:
TEXT '2
was vorher so war:
TEXT 2
Kann man das verhindern? Das er sich nur Zahlenfelder anguckt oder so?
Du kannst:
(a)im Suchendialog anhaken nur in Selektion und vorher die Zellen markieren in denen gesucht werden soll, das ist einfach wenn alle Zelle in einer oder mehreren Spalten und nicht verstreut sind.
(b)dem Ratschlag von Thomas folgen und eine Hilfsspalte verwenden, in DEinem Fall (wenn es nur um die Formatierung für das Exportieren geht) kannst Du einfach eine zweite Tabelle benutzen und alles konvertieren. Wenn z.B. Deine Werte in einer Tabelle names Tabelle1 stehen erzeuge eine neue Tabelle und schreibe dort in Zelle A1 die Formel:
=WENN(T(Tabelle1.A1)="";TEXT(Tabelle1.A1;0);Tabelle1.A1)
und kopiere sie anschließend in alle benötigten Zellen. Das sollte alle Werte der Ausgangstabelle als Text formatieren.
(c)Du kannst den Suchausdruck in ^[1234567890] verändern
(d)Du kannst die Daten als Csv exportieren und die jetzt noch falsche csv-Datei wieder importieren und beim Importdialog durch klicken auf die Spaltenköpfe das Format für jede Spalte auf Text stellen, dann sind alle Werte Text und Du kannst die neue Datei nochmals als csv speichern. Die letztere csv-Datei ist dann richtig formatiert.
Gruß
Stephan
(a)im Suchendialog anhaken nur in Selektion und vorher die Zellen markieren in denen gesucht werden soll, das ist einfach wenn alle Zelle in einer oder mehreren Spalten und nicht verstreut sind.
(b)dem Ratschlag von Thomas folgen und eine Hilfsspalte verwenden, in DEinem Fall (wenn es nur um die Formatierung für das Exportieren geht) kannst Du einfach eine zweite Tabelle benutzen und alles konvertieren. Wenn z.B. Deine Werte in einer Tabelle names Tabelle1 stehen erzeuge eine neue Tabelle und schreibe dort in Zelle A1 die Formel:
=WENN(T(Tabelle1.A1)="";TEXT(Tabelle1.A1;0);Tabelle1.A1)
und kopiere sie anschließend in alle benötigten Zellen. Das sollte alle Werte der Ausgangstabelle als Text formatieren.
(c)Du kannst den Suchausdruck in ^[1234567890] verändern
(d)Du kannst die Daten als Csv exportieren und die jetzt noch falsche csv-Datei wieder importieren und beim Importdialog durch klicken auf die Spaltenköpfe das Format für jede Spalte auf Text stellen, dann sind alle Werte Text und Du kannst die neue Datei nochmals als csv speichern. Die letztere csv-Datei ist dann richtig formatiert.
Gruß
Stephan
Soweit hat das jetzt geklappt, bis auf ein Problem....
auch leere Felder sollen in " gesetzt werden. Also z.B. so:
"11111","","Test 11"
leider sieht es so aus:
"11111",,"Test 11"
Es könnte eine Möglichkeit sein da einfach ein Space einzutragen so richtig gut ist das aber nicht, da damit die Möglichkeit entfällt leere Attribute abzufragen.
auch leere Felder sollen in " gesetzt werden. Also z.B. so:
"11111","","Test 11"
leider sieht es so aus:
"11111",,"Test 11"
Es könnte eine Möglichkeit sein da einfach ein Space einzutragen so richtig gut ist das aber nicht, da damit die Möglichkeit entfällt leere Attribute abzufragen.
Ja, kein Problem:
Die datei sieht so aus:
"11111",,"Test 11"
und heißt z.B. xyz.csv
dann:
-benenne die Datei um in z.B. xyz.txt
-öffne diese Datei in OpenOffice und sie wird im Writer geöffnet
-wähle suchen nach ,, und ersetzen durch ,"";
-speichere diese Datei nun wieder als xyz.txt
-benenne die Datei um in xyz.csv
Nun hast Du eine CSV-Datei die so aussieht:
"11111","","Test 11"
was ich gerade beschrieben habe ist übrigens ganz überflüssig. Öffne die Datei xyz.csv mit Notepad (so Du mit Windows arbeitest, sonst mit anderem Texteditor), wähle suchen nach ,, und ersetzen durch ,"", und speichere. Schon ist alles wie Du es haben willst.
Gruß
Stephan
Die datei sieht so aus:
"11111",,"Test 11"
und heißt z.B. xyz.csv
dann:
-benenne die Datei um in z.B. xyz.txt
-öffne diese Datei in OpenOffice und sie wird im Writer geöffnet
-wähle suchen nach ,, und ersetzen durch ,"";
-speichere diese Datei nun wieder als xyz.txt
-benenne die Datei um in xyz.csv
Nun hast Du eine CSV-Datei die so aussieht:
"11111","","Test 11"
was ich gerade beschrieben habe ist übrigens ganz überflüssig. Öffne die Datei xyz.csv mit Notepad (so Du mit Windows arbeitest, sonst mit anderem Texteditor), wähle suchen nach ,, und ersetzen durch ,"", und speichere. Schon ist alles wie Du es haben willst.
Gruß
Stephan
OK, das ist gut, aber eine Erweiterung dazu habe ich noch:
Da man ja nur ,, außerhalb von Textfeldern finden will sollte der Suchbegriff ",," lauten und durch ",""," ersetzt werden. Sonst würde man falls im Textfeld ,, vorkommt diese ersetzen und so ein Fehler provozieren.
Wobei auch das problematisch sein kann, wenn mehrere Felder hintereinander leer sind, da diese dann ja so aussehen: ",,,,,,," da ist dann obige Möglichkeit wohl doch das einzig sinnvolle.
Da man ja nur ,, außerhalb von Textfeldern finden will sollte der Suchbegriff ",," lauten und durch ",""," ersetzt werden. Sonst würde man falls im Textfeld ,, vorkommt diese ersetzen und so ein Fehler provozieren.
Wobei auch das problematisch sein kann, wenn mehrere Felder hintereinander leer sind, da diese dann ja so aussehen: ",,,,,,," da ist dann obige Möglichkeit wohl doch das einzig sinnvolle.
Hallo samuel,
also, wenn ich mir die Diskussion so ansehe... ich glaube, da wäre ein Makro einfacher, schneller und mit weniger Arbeit verbunden.
Insbesondere, wenn diese Arbeit häufiger vorkommt - und nicht nur einmalig.
Mit Hilfe einer einfachen Schleife wäre es recht einfach möglich, durch den - zum Beispiel markierten oder feststehenden Bereich - zu iterieren, die Zelleninhalte auszulesen, und diese dann als Text wie gewünscht Zeile für Zeile in eine Datei zu schreiben.
Also, wenn du diese Arbeiten häufiger zu tun hast, wäre das mit Sicherheit die bessere Vorgehensweise.
Wenn du Hilfe brauchst - dann frag. Und gib ein Paar Daten über die Tabelle (wie strukturiert, wie beschreibbar...) und über die gewünschte Datei (feststehender, gleichbleibender Name, Verzeichnis....).
Das bekommen wir dann schon gebacken.
Schöne Weihnachten
Thomas
also, wenn ich mir die Diskussion so ansehe... ich glaube, da wäre ein Makro einfacher, schneller und mit weniger Arbeit verbunden.
Insbesondere, wenn diese Arbeit häufiger vorkommt - und nicht nur einmalig.
Mit Hilfe einer einfachen Schleife wäre es recht einfach möglich, durch den - zum Beispiel markierten oder feststehenden Bereich - zu iterieren, die Zelleninhalte auszulesen, und diese dann als Text wie gewünscht Zeile für Zeile in eine Datei zu schreiben.
Also, wenn du diese Arbeiten häufiger zu tun hast, wäre das mit Sicherheit die bessere Vorgehensweise.
Wenn du Hilfe brauchst - dann frag. Und gib ein Paar Daten über die Tabelle (wie strukturiert, wie beschreibbar...) und über die gewünschte Datei (feststehender, gleichbleibender Name, Verzeichnis....).
Das bekommen wir dann schon gebacken.
Schöne Weihnachten
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic