@ChadNC Daran habe ich auch gedacht, als ich das Trennzeichen ausgewählt habe, das mein Code verwenden würde. Die einfachste Lösung war die Verwendung ;, die sowohl in Ubuntu als auch in Windows automatisch erkannt wird, ohne dass ich bestimmte Einstellungen vorschreiben muss.
Gsamaras
Antworten:
77
In Windows hängt es vom Anpassungsbildschirm "Regional- und Sprachoptionen" ab, auf dem Sie ein Listentrennzeichen finden. Dies ist das Zeichen, das Windows-Anwendungen als CSV-Trennzeichen erwarten.
Dies wirkt sich natürlich nur in Windows-Anwendungen aus. Beispielsweise teilt Excel Daten nicht automatisch in Spalten auf, wenn die Datei nicht das oben genannte Trennzeichen verwendet. Alle Anwendungen, die regionale Windows-Einstellungen verwenden, weisen dieses Verhalten auf.
Wenn Sie ein Programm für Windows schreiben, für das die CSV in andere Anwendungen importiert werden muss, und Sie wissen, dass das für Ihre Zielcomputer festgelegte Listentrennzeichen lautet ,, wählen Sie es aus. Andernfalls bevorzuge ich, ;da es weniger Probleme mit Dezimalstellen und der Gruppierung von Ziffern verursacht und erscheint nicht in viel Text.
Diese Änderung wirkt sich auch auf das Öffnen von CSV-Dateien in Excel aus. Wenn Sie die Kompatibilität mit Windows-CSV-Dateien verbessern möchten, legen Sie sie sep=;über die CSV-Datei.
Papo
11
> "Ich bevorzuge; da es weniger Probleme mit Dezimalstellen verursacht". Dies ist die falsche Lösung. Wenn Ihr Trennzeichen ein Komma ist und der Wert einer Zelle auch ein Komma enthält, müssen Sie den Wert in doppelte Anführungszeichen setzen. Zum Beispiel: 111,222, "33,5", 444, "55,98", 666
Elmue
1
Dies gilt auch für die Mac Numbers App. Ich habe mir die Haare ausgezogen, weil ich keine von Photoshop erkannte CSV erstellen konnte. Ich habe die Option für die Region wieder auf US-Englisch umgestellt und alles hat wieder gut funktioniert
Tibidabo
20
Diese regionale Sache ist die dümmste, die jemals gemacht werden konnte. Wie kann das Format der CSV in den Regionen unterschiedlich sein? Dies bedeutet, dass meine Kollegen die CSV nicht für Leute mit einem PC in einer anderen Region öffnen oder speichern können. Oucch
Miguel
Wenn Sie in Coder C++unter Windows programmieren , können Sie die folgende API verwenden, um systemweit oder Benutzerbegrenzer GetLocaleInfo(lcid, LOCALE_SLIST, buff, _countof(buff));
abzurufen
51
Ich würde sagen, bleib beim Komma, da es weithin anerkannt und verstanden wird. Stellen Sie sicher, dass Sie Ihre Werte zitieren und sich Ihren Zitaten entziehen.
ID,NAME,AGE
"23434","Norris, Chuck","24"
"34343","Bond, James ""master""","57"
+1 für die Abdeckung vieler CSV-Szenarien mit einem sehr kurzen Beispiel
Niels Brinch
1
Das Trennen von Kommas allein ist gut, aber Sie erhalten Probleme, wenn Sie Felder mit Kommas erhalten. Hier ist eine gute Referenz, die ich im Handbuch gefunden habe
Ibu
4
FALSCH! Wenn ich auf meinem Computer eine CSV-Datei mit Kommas als Trennzeichen schreibe und in Excel öffne, belegt die gesamte Zeile nur eine Spalte! Es muss eine regionale Windows-Einstellung sein!
Sergiol
2
@sergiol Ich bin nicht sicher, wie das ungültig macht, was sie gesagt haben.
AMC
51
CSV ist ein Standardformat, das in RFC 4180 (2005) beschrieben ist, sodass es nicht an einem Standard mangelt. https://www.ietf.org/rfc/rfc4180.txt
Und schon vorher stand das C in CSV immer für Komma, nicht für semiColon :(
Es ist schade, dass Microsoft dies immer wieder ignoriert und sich immer noch an die Monstrosität hält, die sie vor Jahrzehnten daraus gemacht haben (ja, ich gebe zu, das war, bevor der RFC erstellt wurde).
Ein Datensatz pro Zeile, es sei denn, im zitierten Text steht eine neue Zeile (siehe unten).
COMMA als Spaltentrenner. Niemals ein Semikolon.
ZEITRAUM als Dezimalpunkt in Zahlen. Niemals ein Komma.
Text mit Kommas, Punkten und / oder Zeilenumbrüchen in doppelten Anführungszeichen.
Nur wenn Text in doppelte Anführungszeichen eingeschlossen ist, werden solche Anführungszeichen im Text durch Verdoppeln umgangen. Diese Beispiele repräsentieren dieselben drei Felder:
1, "dieser Text enthält" "Anführungszeichen" ", 3
1, dieser Text enthält "Anführungszeichen", 3
Die Norm deckt keine Datums- und Zeitwerte ab. Ich persönlich versuche, mich an das ISO 8601-Format zu halten, um Verwechslungen zwischen Tag / Monat / Jahr - Monat / Tag / Jahr zu vermeiden.
Die Monstruosität wäre niemals aufgetreten, wenn das Semikolon an erster Stelle gewählt worden wäre. Das Komma wird nicht nur für Dezimalstellen oder Tausendertrennzeichen verwendet, sondern im Gegensatz zum Semikolon auch sehr oft im Text. Semikolon wäre eine bessere Wahl gewesen, weil es viel seltener ist ...
AFract
14
Als ich Monstrosität sagte, meinte ich, dass Microsoft es sprachabhängig machte. Excel öffnet CSV-Dateien und behandelt sie als Tabellenkalkulationen und kann Tabellenkalkulationen im CSV-Format speichern. Eine von Excel in den USA (z. B.) gespeicherte CSV-Datei funktioniert jedoch nicht, wenn jemand in Frankreich oder Belgien versucht, sie zu öffnen, und umgekehrt. Welcher Standard auch immer für mich in Ordnung ist, solange es einen Standard gibt, der für alle funktioniert.
Luc VdV
4
"CSV ist ein Standardformat, das in RFC 4180 (2005) beschrieben ist. Es fehlt also nicht an einem Standard." Leider ist RFC 4180 eine Anfrage nach Kommentaren, kein Standard. Ganz oben steht: "Gibt keinen Internetstandard an." Später heißt es, dass RFC 4180 "das Format dokumentiert, dem die meisten Implementierungen zu folgen scheinen". Es scheint, dass dies von einer kleinen privaten Firma geschaffen wurde, die keinem Standardkörper zugeordnet ist. Es ist ein ausgezeichneter Ausgangspunkt, aber es gibt leider viele CSV-Dateien in freier Wildbahn, die diesem "Standard" nicht folgen.
Jim Rea
9
ALLE Internetstandards werden als RFC bezeichnet.
Luc VdV
2
Aber wenn sie Standard sind, geben sie nicht an, dass sie nicht normativ sein sollen. Stattdessen haben sie eine Reihe von normativen Abschnitten, was bei RFC 4180 nicht der Fall ist.
Frédéric
42
Schauen Sie sich auch diese Antwort und die andere , die dies vorschlägt, an, indem Sie eine Zeile am Anfang der CSV mit einfügen
"sep=,"
Um Excel zu informieren, welches Trennzeichen zu erwarten ist
Ursprünglich sollte es ein Komma sein, aber da das Komma oft als Dezimalpunkt verwendet wird, wäre es kein so gutes Trennzeichen, daher andere wie das Semikolon, meistens länderabhängig
Dieser Abschnitt des Wikipedia-Artikels ist verschwunden. Möglicherweise möchten Sie erneut auf en.wikipedia.org/wiki/Comma-separated_values#Basic_rules verlinken . Dies hat eine Passage zu Gebietsschemas:> " Benachbarte Felder müssen durch ein einziges Komma getrennt werden. Die" CSV "-Formate variieren jedoch stark in Diese Wahl des Trennzeichens. Insbesondere in Gebietsschemas, in denen das Komma als Dezimaltrennzeichen verwendet wird, werden stattdessen Semikolon, TAB oder andere Zeichen verwendet. "
Jules Kerssemakers
4
CSV ist eine durch Kommas getrennte Datei. Im Allgemeinen ist das Trennzeichen ein Komma, aber ich habe viele andere Zeichen gesehen, die als Trennzeichen verwendet werden. Sie werden einfach nicht so häufig verwendet.
Um Sie über die Verwendung beraten zu können, müssen wir Ihre Anwendung kennen. Ist die Datei spezifisch für Ihre Anwendung / Ihr Programm oder muss dies mit anderen Programmen funktionieren?
Ich denke in Europa die; ist weit verbreitet. Meistens, weil wir Kommas in Zahlen wie 60,00 € haben.
Oers
5
@oers Es sollte keine Rolle spielen, solange Sie "quote"Ihre Werte.
Adarshr
Nun, ich habe meistens andere Begrenzer gesehen, die beim Vernetzen von Seedfiles verwendet wurden, aber europäisches Geld funktioniert auch!
Youssef G.
4
Um das Komma in Semikolon als Standard-Excel-Trennzeichen für CSV zu ändern, gehen Sie zu Region -> Zusätzliche Einstellungen -> Registerkarte Zahlen -> Listentrennzeichen und Typ. anstelle der Standardeinstellung
Wenn Ihre regionalen Einstellungen ,als Dezimaltrennzeichen festgelegt sind und Sie eine Datei mit Spalten exportieren, die ,beim Öffnen durch Excel getrennt sind, wird Text in NUR EINER Spalte angezeigt. Wählen DelimitedSie in Excel 2013 die erste Spalte aus, gehen Sie zu DATA -> Text To Columns -> Choose , klicken Sie Nextund wählen Sie dann nur Commaauf. DelimitersSie sehen sofort Änderungen in der Data previewund klicken Finish
Sie
2
Nun, nur um etwas über Semikolon zu sagen. In vielen Ländern wird Komma als Dezimalzahl und nicht als Punkt verwendet. Meistens folgen EU-Kolonien, die aus der Hälfte der Welt bestehen, eine andere Hälfte dem britischen Standard (wie zum Teufel Großbritannien so groß ist O_O), sodass die Verwendung von Komma für Datenbanken mit Zahlen einen Großteil der Kopfschmerzen verursacht, da Excel sich weigert, sie als Trennzeichen zu erkennen .
Wie weise in meinem Land, Vietnam, folgen Sie dem französischen Standard, unser Partner Hongkong verwendet den britischen Standard, so dass Kommas CSV unbrauchbar machen, und wir verwenden \ t oder; stattdessen für den internationalen Gebrauch, aber immer noch nicht "Standard" gemäß dem Dokument von CSV.
Am besten speichern Sie es in einer Textdatei mit der Erweiterung csv:
Sub ExportToCSV()
Dim i, j As Integer
Dim Name As String
Dim pathfile As String
Dim fs As Object
Dim stream As Object
Set fs = CreateObject("Scripting.FileSystemObject")
On Error GoTo fileexists
i = 15
Name = Format(Now(), "ddmmyyHHmmss")
pathfile = "D:\1\" & Name & ".csv"
Set stream = fs.CreateTextFile(pathfile, False, True)
Datei existiert:
If Err.Number = 58 Then
MsgBox "File already Exists"
'Your code here
Return
End If
On Error GoTo 0
j = 1
Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)
stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))
j = j + 1
i = i + 1
Loop
stream.Close
End Sub
;
, die sowohl in Ubuntu als auch in Windows automatisch erkannt wird, ohne dass ich bestimmte Einstellungen vorschreiben muss.Antworten:
In Windows hängt es vom Anpassungsbildschirm "Regional- und Sprachoptionen" ab, auf dem Sie ein Listentrennzeichen finden. Dies ist das Zeichen, das Windows-Anwendungen als CSV-Trennzeichen erwarten.
Dies wirkt sich natürlich nur in Windows-Anwendungen aus. Beispielsweise teilt Excel Daten nicht automatisch in Spalten auf, wenn die Datei nicht das oben genannte Trennzeichen verwendet. Alle Anwendungen, die regionale Windows-Einstellungen verwenden, weisen dieses Verhalten auf.
Wenn Sie ein Programm für Windows schreiben, für das die CSV in andere Anwendungen importiert werden muss, und Sie wissen, dass das für Ihre Zielcomputer festgelegte Listentrennzeichen lautet
,
, wählen Sie es aus. Andernfalls bevorzuge ich,;
da es weniger Probleme mit Dezimalstellen und der Gruppierung von Ziffern verursacht und erscheint nicht in viel Text.quelle
sep=;
über die CSV-Datei.C
oderC++
unter Windows programmieren , können Sie die folgende API verwenden, um systemweit oder BenutzerbegrenzerGetLocaleInfo(lcid, LOCALE_SLIST, buff, _countof(buff));
Ich würde sagen, bleib beim Komma, da es weithin anerkannt und verstanden wird. Stellen Sie sicher, dass Sie Ihre Werte zitieren und sich Ihren Zitaten entziehen.
quelle
CSV ist ein Standardformat, das in RFC 4180 (2005) beschrieben ist, sodass es nicht an einem Standard mangelt. https://www.ietf.org/rfc/rfc4180.txt
Und schon vorher stand das C in CSV immer für Komma, nicht für semiColon :(
Es ist schade, dass Microsoft dies immer wieder ignoriert und sich immer noch an die Monstrosität hält, die sie vor Jahrzehnten daraus gemacht haben (ja, ich gebe zu, das war, bevor der RFC erstellt wurde).
Nur wenn Text in doppelte Anführungszeichen eingeschlossen ist, werden solche Anführungszeichen im Text durch Verdoppeln umgangen. Diese Beispiele repräsentieren dieselben drei Felder:
1, "dieser Text enthält" "Anführungszeichen" ", 3
1, dieser Text enthält "Anführungszeichen", 3
Die Norm deckt keine Datums- und Zeitwerte ab. Ich persönlich versuche, mich an das ISO 8601-Format zu halten, um Verwechslungen zwischen Tag / Monat / Jahr - Monat / Tag / Jahr zu vermeiden.
quelle
Schauen Sie sich auch diese Antwort und die andere , die dies vorschlägt, an, indem Sie eine Zeile am Anfang der CSV mit einfügen
Um Excel zu informieren, welches Trennzeichen zu erwarten ist
quelle
1.> Ändern Sie das Dateiformat in .CSV (durch Semikolon getrennt).
Um das gewünschte Ergebnis zu erzielen, müssen wir die
delimiter
Einstellung in denExcel
Optionen vorübergehend ändern :Deaktivieren Sie die Einstellung "Systemtrennzeichen verwenden" und setzen Sie ein Komma in das Feld "Dezimaltrennzeichen".
Speichern Sie nun die Datei im
.CSV
Format und sie wird im durch Semikolons getrennten Format gespeichert.quelle
Ursprünglich sollte es ein Komma sein, aber da das Komma oft als Dezimalpunkt verwendet wird, wäre es kein so gutes Trennzeichen, daher andere wie das Semikolon, meistens länderabhängig
http://en.wikipedia.org/wiki/Comma-separated_values#Lack_of_a_standard
quelle
CSV ist eine durch Kommas getrennte Datei. Im Allgemeinen ist das Trennzeichen ein Komma, aber ich habe viele andere Zeichen gesehen, die als Trennzeichen verwendet werden. Sie werden einfach nicht so häufig verwendet.
Um Sie über die Verwendung beraten zu können, müssen wir Ihre Anwendung kennen. Ist die Datei spezifisch für Ihre Anwendung / Ihr Programm oder muss dies mit anderen Programmen funktionieren?
quelle
"quote"
Ihre Werte.Um das Komma in Semikolon als Standard-Excel-Trennzeichen für CSV zu ändern, gehen Sie zu Region -> Zusätzliche Einstellungen -> Registerkarte Zahlen -> Listentrennzeichen und Typ. anstelle der Standardeinstellung
quelle
,
als Dezimaltrennzeichen festgelegt sind und Sie eine Datei mit Spalten exportieren, die,
beim Öffnen durch Excel getrennt sind, wird Text in NUR EINER Spalte angezeigt. WählenDelimited
Sie in Excel 2013 die erste Spalte aus, gehen Sie zu DATA -> Text To Columns -> Choose , klicken SieNext
und wählen Sie dann nurComma
auf.Delimiters
Sie sehen sofort Änderungen in derData preview
und klickenFinish
Nun, nur um etwas über Semikolon zu sagen. In vielen Ländern wird Komma als Dezimalzahl und nicht als Punkt verwendet. Meistens folgen EU-Kolonien, die aus der Hälfte der Welt bestehen, eine andere Hälfte dem britischen Standard (wie zum Teufel Großbritannien so groß ist O_O), sodass die Verwendung von Komma für Datenbanken mit Zahlen einen Großteil der Kopfschmerzen verursacht, da Excel sich weigert, sie als Trennzeichen zu erkennen .
Wie weise in meinem Land, Vietnam, folgen Sie dem französischen Standard, unser Partner Hongkong verwendet den britischen Standard, so dass Kommas CSV unbrauchbar machen, und wir verwenden \ t oder; stattdessen für den internationalen Gebrauch, aber immer noch nicht "Standard" gemäß dem Dokument von CSV.
quelle
Am besten speichern Sie es in einer Textdatei mit der Erweiterung csv:
Datei existiert:
quelle