Seite 1 von 1
Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: Fr, 23.05.2014 23:43
von deusexmachina
Ich möchte ein CSV generieren in dem alle Felder mit Anführungszeichen zitiert werden - auch Zahlfelder und Felder mit keinem Wert. Ich habe in den Filtereinstellungen "Alle Textfelder zitieren" markiert aber leider funktioniert dies nicht. Kann mir jemand dabei helfen?
Edit: Das mit den Zahlen hat sich erledigt, nur die leeren Felder hätte ich gerne noch zitiert, da dies mir irgendwie Probleme beim Import macht.
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: Sa, 24.05.2014 18:24
von clag
Hallo deusexmachina,
wenn du etwas über deinen Wunsch nachdenkst sollte dir aufgehen, das das nicht so sehr sinnig ist,
denn würde Calc deinen Wunsch erfüllen, müssten allein 2.147.483.648 " Zeichen für eine leere Tabelle in die Datei geschrieben werden.
Ich gehe einmal davon aus, das ist auch nicht was du möchtest, oder?
Also nimm eine Zelle formatiere die als Text, füge ein Leerzeichen ein und vervielfältige diese Zelle zB durch ziehen
so oft wie du es für deine Tabelle brauchst, dann füllst du die Tabelle mit Inhalt.
Und eine im CSV Format gespeicherte Version sieht wie von dir gewünscht aus,
wenn weiterhin "Alle Textfelder zitieren" markiert ist.
hilft dir dieser Gedanke?
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: Sa, 24.05.2014 19:00
von lorbass
clag hat geschrieben:[…] müssten allein 2.147.483.648 " Zeichen für eine leere Tabelle in die Datei geschrieben werden.
@clag,
wenn du etwas über deine Theorie nachdenkst, sollte dir aufgehen, dass dann bei der Ausgabe ohne die Anführungszeichen »""« für jede der 1.048.576 leeren Zeilen 1.023 Trennzeichen geschrieben werden müssten, also z.B. »;;;; … ;;;«
Nein, tatsächlich würde – mit oder ohne Anführungszeichen – nur der tatsächlich benutze Bereich ausgegeben werden, von A1 bis zu der Zelle in der letzten benutzten Zeile und der letzten benutzten Spalte.
Gruß
lorbass
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: Sa, 24.05.2014 19:25
von clag
Hallo lorbass,
deusexmachina hat geschrieben:auch Zahlfelder und Felder mit keinem Wert.
ist gewünscht
In meinen Augen besteht eine Calc Tabelle aus 1048576 leeren Zeilen mit 1024 leeren Spalten also 1.073.741.824 leeren Zellen oder?
wenn eine Tabelle nun leere Zellen beinhalten soll, hat Calc keinen Anhaltspunkt mehr wo ein Datenbereich endet, also gesamte Tabelle
wenn diese leeren Zellen wie gewünscht mit "" eingefasst werden sind das wie viel " ?
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 03:52
von Karolus
Hallo
In meinen Augen besteht eine Calc Tabelle aus 1048576 leeren Zeilen mit 1024 leeren Spalten also 1.073.741.824 leeren Zellen oder?
Nein, zunächst ist das lediglich ein virtuelles Konzept, Calc stellt quasi eine "Eingabemaske" mit 1024Spalten mal 1048576Zeilen zur Verfügung, die werden nirgendwo abgespeichert ( was soll da auch gespeichert werden solange "nix drin steht" )
Persistent gespeichert werden nur die Koordinaten und die Inhalte beschriebener Zellen.
Da beim .csv-Export keine Möglichkeit besteht Koordinaten mitzugeben werden leere Zellen links und oberhalb beschriebener Zellen durch die entsprechende Zahl von Trennzeichen dargestellt.
Karolus
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 14:47
von deusexmachina
Vielleicht habe ich mich ein wenig unklar ausgedrückt - unter leere Felder verstehe ich natürlich leere Felder in einer Reihe mit wenigstens einem gefüllten Feld.
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 15:10
von Karolus
Hallo
Ja das hast du:
...nur die leeren Felder hätte ich gerne noch zitiert, da dies mir irgendwie Probleme beim Import macht.
Da würden jetzt etwas genauere Angaben zu
"irgendwie" und
"Import" helfen.
Karolus
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 15:24
von deusexmachina
Ich importiere die CSV-Datei über ein PHP-Skript (über fgetscsv) um die Daten in eine SQL-Datenbank zu schreiben. Als Feldtrennzeichen verwende ich ; und als Texttrennzeichen ".
Mein Problem nun ist, dass wenn es in der Datei leere Felder gibt, diese in der CSV als ;; dargestellt werden und das Skript, warum auch immer, "Schluckauf" bekommt und manchmal ein einzelnes Trennzeichen als Wert in die Tabelle schreibt.
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 16:07
von lorbass
Wenn nichts anderes hilft und insbesondere dein PHP-Skript das nicht im Zuge der Abarbeitung der csv-Datei erledigen kann, bereite die csv-Datei mit einem Texteditor vor, der mit Regulären Ausdrücken umgehen kann, oder mit dem
Writer. Die erforderlichen aber fehlenden Anführungszeichen werden dann in drei Schritten eingefügt.
- leere Zelle an einem Zeilenanfang
Suchen nach: ^; — Ersetzen durch: "";
- leere Zelle innerhalb einer Zeile
Suchen nach: ;; — Ersetzen durch: ;"";
- leere Zelle an einem Zeilenende
Suchen nach: ;$ — Ersetzen durch: ;""
Gruß
lorbass
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 16:11
von Karolus
Hallo
Dann taugt dein PHP-script nichts!
Karolus
Re: Alle Felder (auch Zahlen) bei CSV-Generierung zitieren
Verfasst: So, 25.05.2014 16:49
von deusexmachina
@Karolus Vermutlich. Muss ich mir wohl selbst eines schreiben.