Wie bringe ich Excel dazu, eine CSV-Datei mit Kommas in einige der Inhaltsfelder zu importieren?


13

Wie bringe ich Excel dazu, meine CSV- Datei zu importieren ?

Datei

Ich habe eine Datei, die behauptet, CSV zu sein. Es enthält 10 Felder, die in doppelte Anführungszeichen gesetzt sind (ja, sogar Datum und Nummer). 2 oder 3 dieser Felder enthalten Kommas . 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 schlecht, zumindest für mich.

Beispieldaten

20051, 2009 Sep 30 02:53:23, SOMETEXT, 5000, 2000000, 2008 - 99999 - -99999, 2008 - Unk - Unk, 191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT ", 45 - SOMETEXT - 140 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - 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 dies scheint nicht zu helfen.

Ich habe versucht, "Text Delimiter" von einem doppelten Anführungszeichen auf "{none}" und wieder zurück zu setzen. Dies scheint nur die erste Spalte zu betreffen. Dies wäre nicht ohne Grund möglich, wenn Sie auf die anderen Spalten klicken und diese Einstellung auf jede anwenden könnten. Dies ist jedoch nicht der Fall, und es scheint, dass dies spaltenübergreifend funktionieren soll.

Was kann ich noch probieren?


1
Welche Excel-Version? Und ist es voll gepatcht?
Harrymc

Ich habe dies in den Jahren 2002 und 2007 gesehen. Ich bin mir nicht sicher, ob es 2007 war, aber ich bin mir ziemlich sicher, dass 2002 auf dem neuesten Stand war
Rory Becker,

Können Sie einen Link zur CSV bereitstellen? Oder eine gekürzte Version, die das Problem demonstriert?
Josh Comley

Beispieldaten oben hinzugefügt
Rory Becker

Antworten:


13

Ich habe gerade einen kurzen Test versucht, der Ihr Problem reproduzierte.

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

Versuchen Sie, "und" durch "zu ersetzen.


Nachdem ich mit Ihrem Sample gespielt habe, stelle ich fest, dass Excel die Leerzeichen zwischen den 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 Zugriff darauf haben ;-)

Wie Arjan betonte, müssen Sie möglicherweise auch die Datei von UTF-8 nach ANSI konvertieren, um zu verhindern, dass Zelle A1 die Stückliste und die zugehörigen Qouten enthält.

Ich bin auf den Catch 22 von ANSI-codiertem CSV gestoßen, der keine internationalen Zeichen verarbeitet, und auf UTF-codiertes CSV, das nicht von Excel verarbeitet wird. und keine Lösung gefunden, während die CSV gewartet wird. Wenn internationale Zeichenunterstützung erforderlich ist, scheinen die XML-Formate (oder nativen XLS-Formate) der einzige Weg zu sein - auf Kosten der Einfachheit.


Keine intelligenten Anführungszeichen. Diese Datei wurde erstellt, um Standard-Anführungszeichen aus einem in .NET geschriebenen Programm zu verwenden.
Rory Becker

Ich wollte nicht sagen, dass UTF-8-Dateien anders codiert werden sollten. Aber wenn man UTF-8 importiert, muss man Excel die Kodierung mitteilen. Und UTF-8 ist irgendwo in dieser langen Liste von Kodierungen versteckt.
Arjan

Ich habe viele UTF-8-codierte CSV-Dateien importiert. Ich bin mir allerdings sicher, ob sie eine Stückliste hatten.
Arjan

@ lumbarious: Du bist ein STERN! Funktioniert perfekt ... Ich kann nicht glauben, dass Excel nicht damit umgehen kann :(
Rory Becker

1
Offensichtlich verwirren Leerzeichen zwischen Feldern Excel 2011. Das Entfernen der Leerzeichen behebt das Problem und verhindert, dass Excel die Anführungszeichen in die Daten einfügt. Ich vermute, dass es irgendwo eine Spezifikation gibt, die besagt, dass doppelte Anführungszeichen nur Daten begrenzen, wenn sie direkt neben dem Komma stehen.
Peter Gluck

8

Dieses Problem plagt mich seit einigen Jahren. Ich habe gerade die Lösung entdeckt und sie ist in den obigen Antworten erwähnt, aber nicht explizit dargelegt.

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!


2
Willkommen bei Super User! Diese Antwort wurde auf hilfreiche und klare Weise verfasst. Vielen Dank für Ihren Beitrag und wir hoffen, dass Sie dabei bleiben.
user1717828

YAAAS! Die akzeptierte Antwort enthält die eigentliche Antwort auf die Frage, die im Gegensatz zu dieser Antwort vergraben ist. Die Operation verwendet keine intelligenten Anführungszeichen.
Dardub


2

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: dass möglicherweise aufgrund Ihrer regionalen Einstellungen sein. Wenn Sie doppelklicken oder Datei »Öffnen verwenden, werden Sie von Excel nicht nach Details gefragt, sondern es werden einfach diese Einstellungen verwendet.

Trotzdem sollte das manuelle Aufrufen der Importfunktion (wie Sie es getan haben) funktioniert haben, daher bezweifle ich, dass das Ändern der regionalen Einstellungen hilfreich sein wird ...


Dies scheint eher ein Kommentar als eine Antwort zu sein ...
Metafaniel

Dieser Vorschlag hat mein Problem genau gelöst! Ein CSV-Import (Daten> Aus Text / CSV) hat nicht wie erwartet funktioniert, aber wenn ich nur Datei> Öffnen für die CSV-Datei ausgeführt habe, hat es funktioniert. Dann konnte ich einfach die ganze Tabelle in meine andere Arbeitsmappe kopieren / einfügen.
WOUNDEDStevenJones

1

Haben Sie die Zeichenkodierung Ihrer Datei überprüft? Versuchen Sie, die Zeichenkodierung auf UTF-8 einzustellen.

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


Die Codierung wird von Notepad2 als "UTF8 mit Signatur" gemeldet
Rory Becker

Während des Imports müssen Sie in der Codierungsliste nach unten scrollen. UTF-8 ist irgendwo in der Liste versteckt. (Keine Notwendigkeit, die Verwendung von UTF-8 kodierten CSV - Dateien, aber wie Sie Ihre Eingabe bereits ist UTF-8 Sie tatsächlich benötigen Excel zu sagen , was verwendet wird , ist zu. Beachten Sie, dass ein normaler Zitat-Charakter würde in ASCII denselben codiert werden, Western und UTF -8, aber vielleicht die Signatur (ein Byte Order Mark) oder einige andere Zeichen vermasseln?)
Arjan

@Peter Warum den offiziellen Link zu Wikipedia ändern? Das macht überhaupt keinen Sinn? Wir wollen die Leute nicht zu sehr herumschicken, und dies rechtfertigt sicherlich keine Bearbeitung - insbesondere bei einem zwei Jahre alten Beitrag.
Slhck

1

Fügen Sie hier nur die Antworten hinzu: Konzentrieren Sie sich in Ihren CSV-Dateien auf die SPACES nach dem COMMAS. Excel mag diese nicht, wenn Sie Felder in Ihren Daten zitiert haben.

Excel-Likes (4 Datenspalten):

a, b, c, d

Mag aber nicht (3 Datenspalten):

a, "b, c", d

Es gefällt (3 Datenspalten):

a,"b, c",d

Ich bin gerade auf dieses Problem gestoßen. Ich schlug meinen Kopf gegen die Wand, bis ich zu dieser Notiz kam. Das ist einfach unglaublich. Ich
arbeite

1

Ich bin heute auf dieses Problem gestoßen und habe auch eine Lösung gefunden, die für mich funktioniert.

Meine Umgebung / mein Kontext: Ich habe eine Webseite mit einigen (Formular-) Fragen, die sowohl doppelte Anführungszeichen als auch Kommas enthalten. Sowohl die Fragen als auch die Antworten werden aus der Datenbank entnommen und zu Berichtszwecken in eine Excel-Datei geschrieben.

Ich hatte das gleiche Problem wie oben beschrieben: Die Fragen, die sowohl doppelte Anführungszeichen als auch Kommas enthielten, wurden in Excel in mehrere Spalten aufgeteilt.

Für meine Zwecke hat die Verwendung von zwei einfachen Anführungszeichen anstelle eines doppelten Anführungszeichens den Trick getan.

-> Auf der Website sehen zwei einfache Anführungszeichen für Site-Besucher wie ein doppeltes Anführungszeichen aus

-> In der Excel-Datei sehen zwei einfache Anführungszeichen für Benutzer, die die Berichtsdaten anzeigen, wie doppelte Anführungszeichen aus

Mir ist klar, dass diese Lösung nicht für alle funktioniert, aber hoffentlich hilft sie jemandem.


1

Ich konnte dies mit:

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

was vier Spalten ergibt:

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

0

Eine andere Art, es zu tun:

  1. Öffnen Sie die Datei in LibreOffice oder OpenOffice Calc.
  2. Stellen Sie die richtigen Importoptionen ein, wie UTF-8, kommagetrennt, ...
  3. Speichern Sie die Datei als ods oder xls
  4. Öffnen Sie die neue Datei in Excel.

Auf diese Weise können Sie die richtige Codierung wie UTF-8 festlegen, die in vielen (allen?) Versionen von Excel ohne Stückliste nicht korrekt verarbeitet werden kann, und Sie müssen sich keine Gedanken über eine Regex machen, die möglicherweise Text innerhalb des Feldes und ersetzt du merkst es nicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.