630 Stimmen

Gibt es eine Möglichkeit, Kommas in CSV-Spalten einzufügen, ohne die Formatierung zu verändern?

Ich habe eine zweispaltige CSV-Datei mit einem Namen und einer Nummer. Bei einigen Namen werden Kommas verwendet, zum Beispiel Joe Blow, CFA. Dieses Komma bricht das CSV-Format, da es als neue Spalte interpretiert wird.

Ich habe nachgelesen, und das gängigste Rezept scheint zu sein, dieses Zeichen oder das Trennzeichen durch einen neuen Wert zu ersetzen (z. B. this|that|the, other ).

Ich würde gerne das Komma als Trennzeichen beibehalten (ich weiß, dass Excel andere Trennzeichen unterstützt, aber andere Interpreter möglicherweise nicht). Ich würde auch gerne das Komma im Namen beibehalten, da Joe Blow| CFA sieht ziemlich albern aus.

Gibt es eine Möglichkeit, Kommas in CSV-Spalten einzufügen, ohne die Formatierung zu unterbrechen, z. B. indem man sie umbricht?

2voto

Mohammed Punkte 1304

Ich hatte das gleiche Problem und zitiere die , hat nicht geholfen. Schließlich ersetzte ich die , con + , beendete die Verarbeitung, speicherte die Ausgabe in einer Outfile und ersetzte die + con , . Das mag hässlich erscheinen, aber bei mir hat es funktioniert.

2voto

user25307 Punkte 41

Es ist vielleicht nicht das, was hier gebraucht wird, aber es ist eine sehr alte Frage und die Antwort könnte anderen helfen. Ein Tipp, den ich beim Importieren in Excel mit einem anderen Trennzeichen nützlich finde, ist, die Datei in einem Texteditor zu öffnen und eine erste Zeile wie folgt hinzuzufügen:

sep=|

wobei | das Trennzeichen ist, das Excel verwenden soll. Alternativ können Sie auch das Standardtrennzeichen in Windows ändern, was jedoch etwas umständlich ist:

Systemsteuerung>Uhr & Region>Region>Formate>Zusätzlich>Zahlen>Listentrennzeichen [ändern Sie das Komma in Ihre bevorzugte Alternative]. Das bedeutet, dass Excel standardmäßig auch CSV-Dateien mit dem gewählten Trennzeichen exportiert.

1voto

Kevin Punkte 81

Sie können Ihre Werte kodieren, zum Beispiel in PHP base64_encode($str) / base64_decode($str)

IMO ist dies einfacher als die Verdopplung von Anführungszeichen usw.

https://www.php.net/manual/en/function.base64-encode.php

Die kodierten Werte enthalten niemals ein Komma, so dass jedes Komma in Ihrer CSV-Datei ein Trennzeichen ist.

0voto

sakshi jain Punkte 291

Sie können die Text_Qualifier in Ihrem Flat File Connection Manager auf als " . Dies sollte Ihre Daten in Zitate und nur durch Kommas getrennt werden, die außerhalb der Anführungszeichen stehen.

0voto

LifeiSHot Punkte 141

Erstens, wenn der Positionswert Anführungszeichen (") enthält, durch 2 Anführungszeichen ("") ersetzen.

item = item.ToString().Replace("""", """""")

Zum Schluss wird der Wert des Artikels verpackt:

ON LEFT: Mit doppeltem Anführungszeichen (")

RECHTS: Mit doppeltem Anführungszeichen (") und Kommazeichen (,)

csv += """" & item.ToString() & ""","

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X