Wie erhalte ich Excel zum Importieren einer CSV-Datei mit Kommas in einigen Inhaltsfeldern?

53121
Rory Becker

Wie bekomme ich Excel zum Importieren meiner CSV- Datei?

Datei

Ich habe eine Akte, die behauptet, CSV zu sein. Es enthält 10 Felder, die alle in Anführungszeichen stehen (ja, sogar Datumsangaben und Zahlen). 2 oder 3 dieser Felder enthalten Kommas . Die Daten in diesen Feldern sind jedoch auch von Anführungszeichen umgeben.

Problem

Wenn ich versuche, diese Datei zu öffnen, ignoriert Excel die Anführungszeichen vollständig und geht davon aus, dass sie Teil der Daten sind.

Daher werden die Felder, die Kommas enthalten, in mehrere Spalten aufgeteilt.

Das ist zumindest für mich schlecht.

Beispieldaten

"20051", "", "2009 Sep 30 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SETETET - SETETET - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETEXT - SETETET - SETETET - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT " "20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SETTEEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT " 

Was habe ich versucht?

Ich habe die Importfunktion verwendet, um Trennzeichen und dergleichen anzugeben, aber das scheint nicht zu helfen.

Ich habe versucht, "Text Delimiter" von einem doppelten Anführungszeichen auf "" und wieder zurück zu setzen. Dies scheint nur die erste Spalte zu betreffen. Dies wäre möglich, wenn Sie auf die anderen Spalten klicken und diese Einstellung auf jede Spalte anwenden könnten. Dies ist jedoch nicht der Fall, und es sieht so aus, als sollte dies über mehrere Spalten hinweg funktionieren.

Was kann ich noch probieren?

12
Welche Excel-Version? Und ist es vollständig gepatcht? harrymc vor 14 Jahren 1
Ich habe das in den Jahren 2002 und 2007 gesehen. Ich bin mir nicht sicher über 2007, aber ich bin mir ziemlich sicher, dass 2002 auf dem neuesten Stand war Rory Becker vor 14 Jahren 0
Können Sie einen Link zum CSV angeben? Oder eine reduzierte Version, die das Problem demonstriert? Josh Comley vor 14 Jahren 0
Beispieldaten oben hinzugefügt Rory Becker vor 14 Jahren 0

8 Antworten auf die Frage

13
Community

Ich habe gerade einen Schnelltest ausprobiert, der Ihr Problem repliziert.

Ich habe eine einzeilige CSV-Datei in Word (die intelligente Anführungszeichen verwendet) als test.csv "123", "4,5,6" erstellt und wie beschrieben in Excel geöffnet.

Versuchen Sie, "und" durch "zu ersetzen"


Nachdem ich mit Ihrem Beispiel gespielt habe, stelle ich fest, dass Excel die Leerzeichen zwischen Feldern nicht mag

zB statt

"20051", "", "2009 Sep 30 02:53:23", ... 

Sie wollen

"20051","","2009 Sep 30 02:53:23",... 

ein anständiger Ersatz für reguläre Ausdrücke sollte damit umgehen können

Find: |("[^"]*",) | Replace: |\1| 

(Pipe-Zeichen nur für visuelle Hinweise)

Oder ändern Sie einfach den .Net-Code, wenn Sie darauf Zugriff haben ;-)

Wie Arjan darauf hingewiesen hat, müssen Sie möglicherweise auch die Datei von UTF-8 in ANSI konvertieren, um zu verhindern, dass Zelle A1 die Stückliste und die sie umgebenden Qoutes enthält.

Ich bin auf Catch 22 von ANSI-codierten CSV-Dateien gestoßen, die keine internationalen Zeichen verarbeiten, und UTF-codierte CSV-Dateien, die nicht ordnungsgemäß von Excel behandelt werden. und keine Lösung gefunden, während der CSV gewartet wird. Wenn internationale Zeichenunterstützung erforderlich ist, scheinen die XML-Formate (oder native XLS-Formate) der einzige Weg zu sein - auf Kosten der Einfachheit.

Keine smarten Zitate involviert. Diese Datei wurde erstellt, um Standard-Anführungszeichen aus einem in .Net geschriebenen Programm zu verwenden. Rory Becker vor 14 Jahren 0
Ich wollte nicht sagen, dass UTF-8-Dateien anders codiert werden sollten. Wenn Sie jedoch UTF-8 importieren, müssen Sie in der Tat sagen, was die Kodierung ist. UTF-8 ist irgendwo in dieser langen Liste von Kodierungen versteckt. Arjan vor 14 Jahren 0
Ich habe viele UTF-8-codierte CSV-Dateien importiert. Ich bin mir sicher, ob sie eine Stückliste hatten. Arjan vor 14 Jahren 0
@lumbarious: Du bist ein STERN! Funktioniert perfekt ... Ich kann nicht glauben, dass Excel damit nicht umgehen kann :( Rory Becker vor 14 Jahren 0
Ja, wenn ich wieder lese, sehe ich, dass Sie das gesagt haben. Zufällig habe ich nur Excel XP (2002), um mit a den Moment zu spielen, und es hat kein UTF-8 in der Liste :-( Aber seltsamerweise scheint "1361: Korean (Johab)" zu funktionieren -shrug- vor 14 Jahren 0
Ja, scheinbar Leerzeichen zwischen Feldern führen zu einer vollständigen Verwirrung von Excel 2011. Durch das Entfernen der Leerzeichen wird das Problem korrigiert, und es wird auch verhindert, dass Excel die Anführungszeichen als Teil der Daten enthält. Meine Vermutung ist, dass es irgendwo eine Spezifikation gibt, die besagt, dass doppelte Anführungszeichen nur Daten abgrenzen, wenn sie direkt neben dem Komma stehen. Peter Gluck vor 9 Jahren 1
In diesem speziellen Fall, in dem ** alle ** Felder in Anführungszeichen stehen, können Sie dies auch korrigieren, indem Sie einfach _comma_ ** und ** _space_ als Trennzeichen auswählen. Die Anführungszeichen hindern die Leerzeichen in den Feldern als Trennzeichen. Auch @PeterGluck gibt es leider keine Spezifikation für .csv-Dateien. Siehe den Wikipedia-Artikel, der am Anfang der OP-Frage verlinkt ist. Trotzdem hat Microsoft die am häufigsten verwendeten Features von CSV-Dateien nicht genau implementiert. GlennFromIowa vor 7 Jahren 0
7
Mark Milbourne

Dieses Problem plagt mich seit einigen Jahren. Ich habe gerade die Lösung gefunden und darauf wird in den obigen Antworten verwiesen, aber nicht explizit angegeben.

Es ist das Leerzeichen nach dem Komma!

Dies wird nicht in Excel importiert.

HEADER1, HEADER2 "1,000", "2,000" 

Während

HEADER1,HEADER2 "1,000","2,000" 

Funktioniert!

Willkommen bei Super User! Diese Antwort wurde hilfreich und klar geschrieben. Vielen Dank für Ihren Beitrag und wir hoffen, dass Sie dabei bleiben. user1717828 vor 6 Jahren 2
YAAAS! Die akzeptierte Antwort hat die reale Antwort auf die Frage im Gegensatz zu dieser Antwort. Die Operation verwendet keine intelligenten Anführungszeichen. dardub vor 6 Jahren 0
2
Alan B

Sie können auch CSVEd ausprobieren, das kostenlos ist.

2
Arjan

Wenn ich versuche, diese Datei zu öffnen, ignoriert Excel die Anführungszeichen vollständig und geht davon aus, dass sie Teil der Daten sind. Daher werden die Felder, die Kommas enthalten, in mehrere Spalten aufgeteilt.

Wenn Sie nicht aus Versehen Smart-Anführungszeichen wie lumbarius vorgeschlagen, und vorausgesetzt, Sie unter Windows sind: das könnte auf Ihre regionalen Einstellungen fällig. Beim Doppelklicken oder Verwenden von Datei »Öffnen werden Sie von Excel nicht nach Details gefragt, sondern diese Einstellungen werden einfach verwendet.

Das manuelle Aufrufen der Importfunktion (wie Sie es getan haben) sollte jedoch funktionieren, daher bezweifle ich, dass die Änderung der regionalen Einstellungen hilfreich ist ...

Dies scheint eher ein Kommentar als eine Antwort zu sein ... Metafaniel vor 6 Jahren 0
Dieser Vorschlag hat mein Problem genau gelöst! Der CSV-Import (Daten> Aus Text / CSV) funktionierte nicht wie erwartet, aber wenn ich nur Datei> Öffnen in der CSV-Datei ausgeführt habe, hat es funktioniert. Dann konnte ich einfach die gesamte Tabelle in meine andere Arbeitsmappe kopieren / einfügen. WOUNDEDStevenJones vor 5 Jahren 0
1
Josh Comley

Haben Sie die Zeichenkodierung Ihrer Datei überprüft? Stellen Sie die Zeichenkodierung auf UTF-8 ein.

Sie können notepad2 verwenden, um die Zeichencodierung zu ändern.

Die Codierung wird von Notepad2 als "UTF8 mit Signatur" gemeldet. Rory Becker vor 14 Jahren 0
Während des Imports müssen Sie dann in der Codierungsliste nach unten scrollen. UTF-8 ist irgendwo in der Liste versteckt. (Sie brauchen keine UTF-8-codierten CSV-Dateien zu verwenden, da Ihre Eingabe jedoch bereits * UTF-8 ist, müssen Sie in der Tat Excel mitteilen, was verwendet werden soll. Beachten Sie, dass ein normales Anführungszeichen in ASCII, Western codiert wird und UTF-8, aber die Unterschrift (ein Byte Order Mark) oder ein paar andere Zeichen können durcheinander kommen?) Arjan vor 14 Jahren 0
@ Peter Warum den offiziellen Link zu Wikipedia ändern? Das macht überhaupt keinen Sinn? Wir möchten die Leute nicht zu viel herumschicken, und dies macht sicherlich keine Bearbeitung erforderlich - insbesondere für einen zwei Jahre alten Beitrag. slhck vor 11 Jahren 0
1
johnb

Ich konnte das mit Hilfe von:

a,b,c,"=""(1,2,3)""" 

was gibt vier Spalten:

| a | b | c | (1,2,3) | 
1
Gerald

I ran across this problem today and also found a solution that worked for me.

My environment / context: I have a web page with some (form) questions that contain both double quotes and commas. Both the questions and the answers are pulled out of the database and written to an Excel file for reporting purposes.

I had the same problem described above: The questions that included both double quotes and commas were being split into multiple columns in Excel.

For my purposes, using two single quotes in place of a double quote did the trick.

--> on the website, two single quotes look like a double quote to site visitors

--> In the Excel file, again, two single quotes look like a double quote for users viewing the report data

I realize that this solution won't work for everyone, but hopefully it will help someone.

1
DocOc

Just adding to the answers here: focus on the SPACES after the COMMAS in your CSV files. Excel does not like these if you have quoted fields in your data.

Excel likes (4 columns of data):

a, b, c, d 

But does not like (3 columns of data):

a, "b, c", d 

It does like (3 columns of data):

a,"b, c",d 
Ich habe gerade dieses Problem getroffen. Ich schlug meinen Kopf gegen die Wand, bis ich zu diesem Zettel kam. Das ist einfach unglaublich. Ich arbeite mit Excel 2017 und diese Dummheit existiert immer noch ... Albert Godfrind vor 6 Jahren 0