web-dev-qa-db-de.com

Wie kann Excel das Komma als Standardtrennzeichen in CSV-Dateien interpretieren?

Ich habe eine Reihe von CSV-Dateien. Einige von ihnen sind durch Kommas getrennt, andere durch Tabulatoren (vielleicht sollten sie .tsv heißen ...)

Die Erweiterung csv wird bei der Installation von Excel mit Excel verknüpft. Wenn ich jedoch eine dieser Dateien mit Excel öffne, wird alles in dieselbe Spalte verschoben und das Komma wird nicht als Trennzeichen interpretiert.

Ich kann anstelle von Datei -> Importieren ... die Datei auswählen und die genaue Interpretationsmethode für den Inhalt auswählen (Begrenzer, Datentypen usw.). Meistens möchte ich jedoch nur schauen Datei durch eine übersichtliche Tabellenansicht. Ich möchte es nicht mit Excel verarbeiten.

Gibt es eine Möglichkeit, Excel zu veranlassen, das Trennzeichen automatisch zu interpretieren und die CSV-Datei als richtige Tabelle anzuzeigen, sobald sie geöffnet wird? Ich benötige dies, damit ich Excel als Schnellansicht für solche Dateien verwenden kann.

Ich vermute, es muss einen Weg geben, sonst würde sich Excel nicht mit CSV-Dateien verbinden.

85
Szabolcs

Beim Öffnen von CSV-Dateien verwendet Excel eine regionale Systemeinstellung namens List separator, um das zu verwendende Standardtrennzeichen zu bestimmen.

Microsoft Excel öffnet CSV-Dateien. Abhängig von den regionalen Einstellungen des Systems wird möglicherweise ein Semikolon als Trennzeichen anstelle eines Kommas erwartet, da in einigen Sprachen das Komma als Dezimaltrennzeichen verwendet wird. (aus Wikipedia )


Unter Windowskönnen Sie die Einstellung List separator im Regional and Language Options wie auf der Office-Support-Website angegeben ändern. :

Ändern Sie das Trennzeichen in einer CSV-Textdatei

  1. Klicken Sie auf das Windows-Startmenü.
  2. Klicken Sie auf Systemsteuerung.
  3. Öffnen Sie das Dialogfeld Regions- und Sprachoptionen.
  4. Klicken Sie auf die Registerkarte Regionale Einstellungen.
  5. Klicken Sie auf Anpassen/Zusätzliche Einstellungen (Win10).
  6. Geben Sie ein neues Trennzeichen in das Feld Listentrennzeichen ein.
  7. Klicken Sie zweimal auf OK.

Hinweis : Dies funktioniert nur, wenn das Dezimalsymbol nicht auch als Komma gekennzeichnet ist (in Übereinstimmung mit dem obigen Wikipedia-Zitat). Wenn dies der Fall ist, verwendet Excel nicht Komma als Listentrennzeichen, auch wenn es ausgewählt ist. In vielen Regionen außerhalb der USA ist Komma das standardmäßige Dezimaltrennzeichen.

Unter Mac OS Xwird diese Einstellung anscheinend von der Einstellung Dezimaltrennzeichen abgeleitet (im Bereich Sprache & Region von Systemeinstellungen, gehen Sie zu Erweitert). Wenn das Dezimaltrennzeichen ein Punkt ist, ist das CSV-Standardtrennzeichen ein Komma, aber wenn das Dezimaltrennzeichen ein Komma ist, ist das CSV-Standardtrennzeichen ein Semikolon.

Wie Sie selbst in dem Kommentar gesagt haben, gibt es für Mac-Benutzer eine Alternative, um schnell auf diese CSV-Dateien zuzugreifen. Es ist ein Plugin für Quick Look mit dem Namen quicklook-csv , das die Separatorerkennung übernimmt.

77
zakinster

Wenn Sie das Format der Datei nicht ändern möchten und NUR auf Excel abzielen, können Sie den folgenden Excel-Trick verwenden, um Hilfe zu erhalten.

Fügen Sie oben in der Datei eine neue Zeile mit dem Text "sep=," (einschließlich Anführungszeichen) hinzu, damit Excel die Datei mit "," als Listentrennzeichen öffnet.

Es ist ein sehr einfacher Trick, um zu vermeiden, dass Ihre regionalen Windows-Einstellungen geändert werden, und ein konsistentes Ergebnis zu erzielen. Aber es ist Excel-spezifisch.

83
user280725

Sie brauchen keine Anführungszeichen um den sep=, - solange es die erste Zeile der Datei ist, funktioniert es, zumindest mit Excel 2016.

Ich habe festgestellt, dass sep=\t mit und ohne Anführungszeichen funktioniert, wenn die Datei durch Tabulatoren getrennt ist.

9

Die akzeptierte Antwort ist richtig, aber ich bin eine visuelle Person. Hier ist jeder einzelne Schritt im Screenshot-Format, wie dies in Windows 10 gemacht wird.

 enter image description here  enter image description here  enter image description here  enter image description here  enter image description here  enter image description here

3
Sam B

Wenn das Trennzeichen in den Ländereinstellungen kein Komma, sondern ein Semikolon (niederländisches Trennzeichen) ist, benennen Sie die CSV-Datei in eine TXT-Datei um. Klicken Sie mit der rechten Maustaste auf die Datei TXT und wählen Sie "Öffnen mit" und dann "Excel". Wählen Sie in Excel die erste Spalte aus, wählen Sie Daten in der Multifunktionsleiste aus und trennen Sie den Text in Spalten.

OR

Installieren Sie LibreOffice und öffnen Sie die CSV-Datei mit LibreOffice Calc.

1
Eric VDB

der beste Weg ist, es in einer Textdatei mit der Erweiterung csv zu speichern

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)

fileexists:

    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
0
AzizD

Für Holländer hatte ich ein Problem, dass Excel 2008 unter Windows 7 RFC4180 nicht einhielt:

"Felder, die Zeilenumbrüche (CRLF), doppelte Anführungszeichen und Kommas enthalten, sollten in doppelte Anführungszeichen eingeschlossen werden."

Eine durch Kommas getrennte Datei enthielt korrekterweise Felder mit einem Komma (niederländisches Dezimaltrennzeichen) in doppelten Anführungszeichen. In der niederländischen Ländereinstellung lautet das Dezimaltrennzeichen , und das Listentrennzeichen ;. Daher konnte Excel keine Datei mit , lesen, die für beide verwendet wurde (auch nicht, nachdem das Listentrennzeichen in der Systemsteuerung explizit in , geändert wurde).

Die Eingabe sieht folgendermaßen aus:

"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21

Die Lösung wurde von @ user280725 gegeben:

Verwenden Sie den Editor, um als erste Zeile einzufügen:

sep=,

(Dies bedeutet, dass der Hinweis des Benutzers @zakinster in seiner Lösung nicht mehr zutreffen muss.)


0
Paul Ogilvie

Überprüfen Sie die CSV-Datei unbedingt in einem einfachen Editor wie Notepad, um sicherzustellen, dass sie ordnungsgemäß formatiert ist.

Ich habe diese Antwort hinzugefügt, nachdem ich einen dummen Fehler behoben hatte, bei dem CSV-Dateien, die ich mit VB erstellt habe, nicht mit separaten Spalten in Excel geöffnet wurden. Ich entdeckte, dass die Art und Weise, wie ich die Zeilen geschrieben hatte, jede Zeile in Anführungszeichen setzte. Excel hat die Anführungszeichen ausgeblendet und die gesamte Zeile in Spalte A angezeigt, sodass meine Kommatrennzeichen ignoriert wurden.

0
edj