CSV-Datei: Trennzeichen ändern / maskieren
rachel
- php
1 suit0 Tom0 Der Martin0 Rachel0 Der Martin0 Rachel
Hey Forum,
ich gebe ein Liste von Daten im CSV-Format aus, als Trennzeichen setze ich momentan ein Semikolon ein. Mit den richtigen Header-Einstellungen öffnet sich der Output brav direkt in Excel und alle Werte landen in den richtigen Feldern.
Gerne würde ich statt des Semikolon ein anderes Trennzeichen verwenden (z.B. ein Pipe-Zeichen), aber wenn ich das tue, erkennt Excel das nicht mehr beim Öffnen und klemmt die ganze Zeile in die erste Zelle. Ich nehme an, dass man irgendwo im Header den Delimiter spezifizieren kann, aber ich finde per Google keinen Hinweis. Kennt Ihr da was?
Wenn ich schon gerade beim Fragen bin: Wie geht man damit am besten um, wenn in einem Feldwert selbst das Zeichen vorkommt, das eigentlich Trennzeichen ist? In einem Textfeld könnte ja ein Semikolon vorkommen ... und Maskieren mit Backslash geht nicht, das habe ich schon probiert.
Danke!
Rachel
Gerne würde ich statt des Semikolon ein anderes Trennzeichen verwenden (z.B. ein Pipe-Zeichen), aber wenn ich das tue, erkennt Excel das nicht mehr beim Öffnen und klemmt die ganze Zeile in die erste Zelle.
Dazu musst du die Import-Funktion nutzen - oder bei neueren Versionen (ab 2007) im Ribbon "Daten -> Text in Spalten".
Ich nehme an, dass man irgendwo im Header den Delimiter spezifizieren kann [...]
Nein, kann man afaik nicht.
Wenn ich schon gerade beim Fragen bin: Wie geht man damit am besten um, wenn in einem Feldwert selbst das Zeichen vorkommt, das eigentlich Trennzeichen ist? In einem Textfeld könnte ja ein Semikolon vorkommen ... und Maskieren mit Backslash geht nicht, das habe ich schon probiert.
Hej suit,
vielen Dank! OK, dann lasse ich das mit dem anderen Delimiter, die Datei soll in Excel ohne großen Erklärungsbedarf aufgehen.
Stößt Du mich bitte noch mit der Nase auf die Zeile in Deinem Link, in der die Antwort auf den zweiten Teil meiner Frage (Semikolon im Feldwert) zu finden ist? Ich bin anscheinend zu bl...ind dafür :-)
Ciao,
Rachel
Stößt Du mich bitte noch mit der Nase auf die Zeile in Deinem Link, in der die Antwort auf den zweiten Teil meiner Frage (Semikolon im Feldwert) zu finden ist? Ich bin anscheinend zu bl...ind dafür :-)
Abschnitt 2.5 - beachte hierzu aber auch das Datum, an dem das RFC-Dokument erstellt wurde.
Hello,
ich gebe ein Liste von Daten im CSV-Format aus, als Trennzeichen setze ich momentan ein Semikolon ein. Mit den richtigen Header-Einstellungen öffnet sich der Output brav direkt in Excel und alle Werte landen in den richtigen Feldern.
Erstmal ist das leider abhängig von Spracheisntellungen. Ich kannnicht Bestimmtheit sagen, dass es bei jeder Excel-Version da Schwierigkeiten gibt, aber ich habe sie schon oft gehabt.
Wenn Du dann nämlich direkt in Excel eine "Webabfrage" startest, funktioniert plötzlich nur noch das tabulatorzeichen als Trenner vernünftig in den (von mir untersuchten) Sprachversionen von Excel. Ich meine damit, dass die Webabfrage von Excel auf einem System in der Ukraine, in Deutschland, in Great-Britain, in USA, in Italien und in Frankreich durchgeführt wurde. Die chinesische Kollegin durfte leider keine direkte Webabfrage durchführen mit ihrem Excel. Sie musste erst normal die Datei downloaden per HTTP und Browser. Dann hat es aber auch mit den Tabs funktioniert.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
ich gebe ein Liste von Daten im CSV-Format aus, als Trennzeichen setze ich momentan ein Semikolon ein. Mit den richtigen Header-Einstellungen öffnet sich der Output brav direkt in Excel und alle Werte landen in den richtigen Feldern.
Gerne würde ich statt des Semikolon ein anderes Trennzeichen verwenden (z.B. ein Pipe-Zeichen), aber wenn ich das tue, erkennt Excel das nicht mehr beim Öffnen und klemmt die ganze Zeile in die erste Zelle.
kenn' ich, das hat in früheren Excel-Versionen (z.B. Excel 97) mal besser funktioniert. Da konnte man auch noch komma-getrennte CSV-Dateien direkt öffnen, gemäß der ursprünglichen Bedeutung der Abkürzung Comma Separated Values. Irgendwann hat MS da etwas verschlimmbessert.
Ich nehme an, dass man irgendwo im Header den Delimiter spezifizieren kann, aber ich finde per Google keinen Hinweis. Kennt Ihr da was?
Nein, gibt es AFAIK nicht.
Wenn ich schon gerade beim Fragen bin: Wie geht man damit am besten um, wenn in einem Feldwert selbst das Zeichen vorkommt, das eigentlich Trennzeichen ist?
In dem Fall muss der Feldwert in Anführungszeichen stehen. Das Anführungszeichen selbst wird, falls es im Nutztext auch auftreten sollte, durch Verdopplung maskiert:
14; 0; 2.88; Text1; "Text mit Semikolon; und ""Anführungszeichen"; 0
So long,
Martin
Hey Martin (& alle),
Danke, dann geht es also nicht ohne Anführungszeichen (die man dann wiederum escapen muss). Na, wenns sein muss ... :-)
Ciao,
Rachel
Hallo Rachel,
Danke, dann geht es also nicht ohne Anführungszeichen
nein, höchstens in Ausnahmefällen, etwa wenn die Strings, die auftreten könnten, genau bekannt sind.
Ich habe mir übrigens angewöhnt, Stringwerte *immer* in Anführungszeichen zu setzen. Ich mag es nämlich nicht, nach der Devise "kann man, muss man aber nicht" zu arbeiten. ;-)
Aus dem gleichen Grund plädiere ich auch dafür, z.B. in HTML Attributwerte *immer* in Anführungszeichen zu setzen, und nicht nur, wenn es unbedingt erforderlich ist.
Ciao,
Martin
Guter Tipp, mache ich bei den HTML-Attributen genauso. :-)