Ich generiere eine CSV-Datei (durch Kommas und nicht durch Tabulatoren getrennt). Meine Benutzer öffnen die CSV-Datei höchstwahrscheinlich in Excel, indem sie darauf doppelklicken. Meine Daten können Kommas und Sprachmarken enthalten, daher entkomme ich diesen wie folgt.
Reference, Title, Description
1, "My little title", "My description, which may contain ""speech marks"" and commas."
2, "My other little title", "My other description, which may also contain ""speech marks"" and commas."
Soweit ich weiß, war das schon immer so. Hier ist mein Problem: Wenn ich diese Datei in Excel 2010 öffne, wird mein Escapezeichen nicht berücksichtigt. Auf dem Blatt werden Sprachmarkierungen angezeigt, und das Komma verursacht neue Spalten.
quelle
Unten finden Sie die Regeln, wenn Sie glauben, dass es zufällig ist. Auf Basis dieser Regeln kann eine Utility-Funktion erstellt werden.
Wenn der Wert ein Komma, einen Zeilenumbruch oder ein doppeltes Anführungszeichen enthält, sollte der String-Wert in doppelten Anführungszeichen eingeschlossen zurückgegeben werden.
Alle doppelten Anführungszeichen im Wert sollten mit einem anderen doppelten Anführungszeichen maskiert werden.
Wenn der Wert kein Komma, keine neue Zeile oder kein doppeltes Anführungszeichen enthält, sollte der String-Wert unverändert zurückgegeben werden.
quelle
Gemäß den Anweisungen von Yashu habe ich die folgende Funktion geschrieben (es ist PL / SQL-Code, aber er sollte leicht an jede andere Sprache anpassbar sein).
quelle
Einfache Anführungszeichen funktionieren auch gut, auch ohne den doppelten Anführungszeichen zu entgehen, zumindest in Excel 2016:
Excel fügt dies in 5 Spalten ein (wenn Sie im Assistenten "Text in Spalten" das einfache Anführungszeichen als "Textqualifizierer" auswählen).
quelle
Selbst nach doppelten Anführungszeichen hatte ich dieses Problem einige Tage lang.
Ersetzte Pipe Delimiter durch Komma, dann funktionierte alles einwandfrei.
quelle