Wie erzwingen Sie Excel, alle Spalten einer CSV-Datei in Anführungszeichen zu setzen?

89

Excel platziert nur Anführungszeichen um bestimmte Felder. Wie kann ich Excel zwingen, eine CSV-Datei mit Anführungszeichen um jede Spalte zu speichern?

Michael Shnitzer
quelle

Antworten:

44

Wenn Sie die XLS-Datei in LibreOffice oder OpenOffice öffnen, dann Speichern unter ... und Text CSV auswählen, wird eine CSV-Datei generiert, die auch Anführungszeichen als Begrenzer enthält. ZB: "Smith", "Pete", "Canada", "Jones", "Mary", "England"

Aktivieren Sie einfach das Kontrollkästchen "Alle Textzellen zitieren": Export nach CSV mit LibreOffice

Um auch numerische Felder in Anführungszeichen zu setzen, markieren Sie Ihren Zellbereich und ändern Sie die Zellformatierung vor dem Speichern in "Text".

Pete
quelle
7
Obwohl dies keine Antwort auf die spezifische Frage ist, ist es eine einfachere Problemumgehung, als zu versuchen, meine Kunden dazu zu bringen, ein Makro zu verwenden!
Duncanmoo
Ich bin es leid, diese Methode jeden Tag
anzuwenden
Ich denke, dies ist die einfachste und bequemste Lösung, da OpenOffice eine tragbare Software ist. Sie müssen nichts installieren oder Codes schreiben.
Scott Chu
beste Antwort aller Zeiten !!
Rajya Vardhan
20
Gar keine Antwort. Die Frage ist ausdrücklich über MS Excel
vladkras
43

Diese Seite hat auch die Lösung, die direkt aus dem Maul des Pferdes kommt:

http://support.microsoft.com/kb/291296/en-us

Wenn sich der Link verschlechtert, lautet das zu suchende Thema:

"Exportieren einer Textdatei mit Komma- und Anführungszeichen in Excel" und / oder "Q291296"

tl; dr: benutze ihr Makro

Sahmeepee
quelle
10
Bemerkenswert ist, dass das Makro Integer für Zeilen- und Spaltenwerte verwendet. Wenn Sie versuchen, mehr als 32768 Zeilen zu exportieren, wird ein Fehler angezeigt. Das Ändern der Datentypen in Long behebt beispielsweise das Problem.
Dan
Guter Ort (+1). Es sieht so aus, als hätten sie den Code nicht aktualisiert, seit er zum ersten Mal für Excel-Versionen mit maximal 32768 Zeilen geschrieben wurde.
Sahmeepee
9
Ich habe mir die Freiheit genommen, mit diesem Makro eine Zusammenfassung zu erstellen und einige Korrekturen vorzunehmen
fableal
@fableal Toller Ausschnitt! Es verdient eine Antwort.
Xiankai
Office 2010 läuft nach wie vor in einer hohen Anzahl ausgewählter Zeilen über, genau wie bei @sahmeepee erwähnt.
access_granted
18

Ich fand diese einfache Lösung:

  1. Markieren Sie die Zellen, denen Sie die Anführungszeichen hinzufügen möchten.
  2. Klicken Sie mit der rechten Maustaste und gehen Sie zu: Zellen formatieren → Tab: Nummer → Kategorie: Benutzerdefiniert
  3. Fügen Sie Folgendes in das Feld Typ ein: "''"@"''"(Details siehe unten)
  4. Klicken Sie auf "OK"

Die Zeichenfolge, die Sie einfügen, ist "''"@"''"das doppelte Anführungszeichen, das einfache Anführungszeichen, das einfache Anführungszeichen, das doppelte Anführungszeichen, das doppelte Anführungszeichen, das einfache Anführungszeichen, das doppelte Anführungszeichen.

Bearbeitet für Excel 2010 aus den hier gefundenen Informationen .

Michael
quelle
Hmmm .. das gab mir "ITEM" (zwei einfache Anführungszeichen) statt "(ein doppeltes Anführungszeichen). Ich habe gerade eine Suche und Ersetzen, um es zu beheben.
Clay Nichols
6
Das Format sollte "@"
lauten
Diese Antwort war eigentlich eine perfekte Antwort, wenn Sie LibreOffice verwenden - es fehlt eine "Text" -Option im Menü Format> Zahlenformat, obwohl in der Dokumentation darauf bestanden wird, dass die Option vorhanden ist. Wenn Sie in LibreOffice mit der rechten Maustaste auf "Zellen formatieren" klicken, erhalten Sie eine VOLLSTÄNDIGE Liste der Optionen für die Zellinterpretation - anstatt der in der Dropdown-Liste etwas nutzlosen 6 Optionen.
1owk3y
@ Manats Antwort, aber ohne die geschweiften Anführungszeichen:\"@\"
MSC
12

Powershell scheint richtig zu entleeren. so etwas wie

Suchen Sie unter Windows nach powershell.exe, wenn Sie powershell nicht kennen.

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

Hoffe es hilft jemandem.

ssaviers
quelle
Klicken Sie bei gedrückter Umschalttaste mit der rechten Maustaste in den Ordner, in dem Ihre CSV-Datei gespeichert ist, und wählen Sie hier PowerShell-Fenster öffnen , um den Befehl zu vereinfachen import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8. Denken Sie daran, Dateinamen mit Leerzeichen oder anderen Sonderzeichen in einfache Anführungszeichen zu setzen.
Walf
4

Dies war für mich das Einfachste: Ich habe die Tabelle in Access 2010 importiert und von dort als begrenzte Textdatei exportiert. Hat mir die Anführungszeichen um meine Felder gegeben. Dauert weniger als eine Minute für 42.000 Zeilen, jetzt, wo ich die Schritte nach unten habe.

user326114
quelle
Der einzige Nachteil wäre, wenn das Feld selbst ein Anführungszeichen enthält.
access_granted
3

Ich habe eine andere Arbeit gefunden, bei der das VBA-Makro nicht zum Einsatz kommt, für die jedoch Notepad ++ oder ein ähnlicher makrobasierter Texteditor erforderlich ist.

Exportieren Sie Ihre Datei als tabulatorgetrennten Text und öffnen Sie die exportierte Datei in Notepad ++. Ersetzen Sie alle Instanzen des Tabulatorzeichens durch den Text "," (dh wörtlich doppelte Anführungszeichen, Komma, doppelte Anführungszeichen) und verwenden Sie dann ein anderes Makro, um jeder Textzeile ein doppeltes Anführungszeichen voranzustellen und ein Suffix zu setzen.

Ein bisschen abgedreht, aber ich fand es schneller, als ein VBA-Makro zum Laufen zu bringen.

Blausäure
quelle
1
Wenn Sie dies in Notepad ++ tun möchten, verwenden Sie am besten das Suchen und Ersetzen mit regulären Ausdrücken. Anschließend können Sie alle drei Ersetzungsvorgänge (Zeilenanfang, Tabulator und Zeilenende) an einem Ort
ausführen
3

Markieren Sie die Zellen, denen Sie die Anführungszeichen hinzufügen möchten. Gehen Sie zu Format -> Zellen -> Benutzerdefiniert, und kopieren Sie Folgendes in das Feld Typ: \ "@ \" Klicken Sie auf "OK". Seien Sie froh, dass Sie nicht alles von Hand gemacht haben.

Von: http://www.lenashore.com/2012/04/wie-zum-addieren-Angebote-zu-Ihren-Zellen-inExcel-Automatisch/

Steve Coleman
quelle
1
Dies funktioniert gut für Alpha - für Spalten mit numerischen Werten benötigen Sie \ "# \".
DropHit
Zwischen "@" und "#" funktioniert dies. Aber ich muss immer noch die Überschriften in Notepad ++ für die numerischen Spalten bearbeiten und dann alle "" durch "ersetzen. Was für ein Schmerz.
Gary
Ich habe es nicht ausprobiert, aber wenn Sie eine CSV erstellen, können Sie nicht einfach die Spalten in Text ändern und \ "@ \" verwenden
Steve Coleman
2
  1. Markieren Sie die Zellen, denen Sie die Anführungszeichen hinzufügen möchten.
  2. Klicken Sie mit der rechten Maustaste und gehen Sie zu: Zellen formatieren → Tab: Nummer → Kategorie: Benutzerdefiniert
  3. Fügen Sie Folgendes in das Feld Typ ein: "''"@"''"(Details siehe unten)
  4. Klicken Sie auf "OK"
  5. Öffnen Sie die CSV-Datei mit dem Editor (oder einem gleichwertigen Programm).
  6. Ersetzen Sie alle ' '(wiederholte einfache Anführungszeichen) durch "(doppelte Anführungszeichen)
  7. Alles ersetzen ;
  8. Speichern Sie die überarbeitete CSV-Datei
Eric
quelle
1

Wenn Sie Notepad ++ zum Hinzufügen von Anführungszeichen am Anfang jeder Zeile verwenden, öffnen Sie einfach die exportierte CSV-Datei, setzen Sie den Cursor auf die erste Zeile und die erste Spalte und klicken Sie im Feld ' Text zum Einfügen ' auf das Menü Bearbeiten / Spalteneditor. Geben Sie "ein , und am Anfang jeder Zeile befindet sich ein Anführungszeichen. Anschließend können Sie mithilfe eines regulären Ausdrucks alle Registerkarten suchen / ersetzen.

Michael Zhang
quelle
0

Für Windows Benutzer

  1. "Speichern unter" Excel-Datei als CSV
  2. Öffnen Sie die gespeicherte Datei mit Mircrosoft Works Spreadsheet
  3. Speichern Sie die Tabelle als CSV
  4. Alle nicht-numerischen Felder sind jetzt mit "" umgeben

Beachten Sie, dass dies nicht dasselbe Tastaturzitat ist, das eine Vorwärts- und Rückwärtsvariante aufweist.
Wenn Sie also CSV zum LADEN in eine MySQL-Tabelle verwenden, schneiden Sie diese aus und fügen Sie sie in den ENCLOSED-Parameter ein. Andernfalls werden Sie sich fragen, warum Sie eine Meldung erhalten#1083 - Field separator argument is not what is expected

Greg
quelle
3
Mircrosoft Works <-? Bist du dir da sicher?
Nixda
0

Ich habe den folgenden Ansatz verwendet, um drei Spalten in Excel zu verwenden und die Zeichenfolge in der vierten Spalte zu erstellen.

=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""

Mein Problem mit dem "''"@"''"Ansatz ist, dass die zweite Spalte meiner Daten eine Zahl war, bei der der "''"@"''"Ansatz nichts mit den Zahlen zu tun hatte. Manchmal ist die zweite Spalte leer, aber ich musste sicherstellen, dass sie in der endgültigen Textdatei dargestellt wurde.

user415149
quelle
0

Eine andere Möglichkeit, wenn Sie MS-Zugriff haben (ich habe ver 2007), importieren Sie die Datei und exportieren Sie sie als Textdatei. Ändern Sie dann den TXT in CSV. Beachten Sie, dass alle Zahlenfelder keine doppelten Anführungszeichen enthalten. Wenn Sie also auch doppelte Anführungszeichen für die Zahlen benötigen, ändern Sie in Access das Feld von einem Zahlenfeld in ein Textfeld.

Dean
quelle
0

Das Exportieren von durch Kommas getrennten und in Anführungszeichen gesetzten Zeichenfolgen kann nur mit Excel 2016 und Notepad erfolgen. Dabei werden eine Kopie der Daten, eine Formel, ein Export, eine Änderung der Dateieigenschaften, ein Ersatz in Notepad, das Speichern der exportierten Datei und eine Bereinigung verwendet. Jeder ist ein einfacher Schritt. Im Detail:

  1. Kopieren Sie die zu exportierenden Spalten in ein neues Zwischenblatt, um das Original und die Sicherungskopie zu erhalten. Das neue Blatt wird später gelöscht, damit die Tabelle unverändert bleibt.

  2. Fügen Sie ansonsten nicht vorkommende Zeichen ein, sagen Sie '#' oder ';-)' an jedem Ende einer Zeichenkette in der Spalte und sagen Sie A mit der Formel =concat("#",trim(A1),"#"), wobei Sie die Formel in alle Zeilen einer anderen Spalte einfügen.

    • Angrenzende Spalten können zur gleichen Zeit erstellt werden, aber zitieren Sie keine Zahlen, um zu vermeiden, dass sie als Zeichenfolgen eingelesen werden.
    • Durch den Zuschnitt werden alle nachgestellten Leerzeichen vermieden, die ein unsachgemäßes Exportverhalten auslösen können.
    • Strings sollten kein '"' enthalten, was den Import stören könnte.
  3. Kopieren Sie die neue (n) Spalte (n) mit der Methode '123' wieder über A ..., damit die Formel nicht übertragen wird.

  4. Exportieren Sie das Blatt als CSV-Datei, um die Kommas zwischen Feldern einschließlich Zahlen einzufügen.

  5. Ändern Sie die file.csv-Eigenschaften so, dass sie mit Notepad geöffnet werden können.

  6. Verwenden Sie den Editor, um beliebige Zeichen durch "" zu ersetzen.

  7. Während es sinnvoll erscheint, "" als willkürliches Zeichen zu verwenden, muss es in eine andere Zelle gestellt werden, z. B. "$ A $ 50", und dann wird beim Export "" "" angezeigt, anscheinend ein weiterer unbequemer Auslöser.

  8. Im Editor sollte die Datei gespeichert und als * .txt-Datei importiert und die Zwischendatei * .csv gelöscht werden.

  9. Mit Bereinigung des zusätzlichen Arbeitsblatts ist die Mission erfüllt.

Möglicherweise können die Access-Exporttools eines Tages in Excel eingebettet werden. Ein allgemeinerer Ansatz unter den Programmen, die Ausschneiden und Einfügen verwenden, wäre, dass die Einfügeoptionen eine Auswahl von Möglichkeiten enthalten, die Ausgabestruktur zu interpretieren und Begrenzer bereitzustellen.

HGB
quelle
0

Michaels Antwort vom 21. August 2014 ist wirklich hilfreich. Ich musste jedoch einen oder zwei zusätzliche Schritte ausführen:

  1. Öffnen Sie die CSV-Datei mit dem Editor (oder einem gleichwertigen Programm).
  2. Ersetzen Sie alle '' (wiederholte einfache Anführungszeichen) durch "(doppelte Anführungszeichen)
  3. Alles ersetzen ; (als Begrenzer in der deutschen Version von Excel verwendet) mit,
  4. Speichern Sie die überarbeitete CSV-Datei
ein CVn
quelle
Keine Erklärung für die Ablehnung? Par für den Kurs, aber wie sollen andere lernen? SIE denken vielleicht, dass es offensichtlich ist, was falsch ist, Mr. Downvoter, aber es ist möglicherweise nicht für alle offensichtlich. Wir versuchen, hier eine Community aufzubauen, und Sie helfen nicht.
Mawg
-1

Das ist mein Rezept. Ich hasse es, das tun zu müssen, aber ich hatte keinen besseren Weg. In meinem Fall erhalte ich keine Anführungszeichen für ein Feld. Ich musste auch UTF-8-Codierung verwenden und; Anstelle von Tabulatoren habe ich dies beendet.

ANMERKUNG: Aufgrund der Möglichkeit, doppelte Anführungszeichen in einfache Anführungszeichen usw. zu setzen, habe ich absichtlich die Tastaturformatierung verwendet, um sowohl Tastenanschläge als auch literale Zeichen und Zeichenfolgen anzugeben.

  1. Fügen Sie eine neue Spalte vor einer anderen in Ihre Excel-Tabelle ein (klicken Sie auf den Titel der ersten Spalte, die gesamte Spalte wird ausgewählt, klicken Sie mit der rechten Maustaste, wählen Sie "Einfügen").
  2. Wählen Sie den gesamten Bereich leerer Zellen aus der neuen Spalte aus (diese sind standardmäßig ausgewählt). Geben Sie in das Formelfeld ein, was Sie möchten: zum Beispiel xxx. Drücken Sie CTRL+ enter, um die gesamte Spalte mit demselben Wert zu füllen.
  3. Speichern Sie die Datei als Unicode-Text (* .txt).
  4. Datei in Notepad ++ öffnen.
  5. Drücken Sie CTRL+ f, um Suchen / Ersetzen zu öffnen.
  6. Wechseln Sie zur Registerkarte Ersetzen.
  7. Wählen Sie im "Suchmodus" "Erweitert (\ n, \ r, \ t, \ 0, \ x ...)".
  8. Geben Sie im Feld "Suchen" xxxeinen tabTastendruck ein.
  9. Geben Sie im Feld "Ersetzen" ein "(doppelte Anführungszeichen).
  10. Klicken Sie auf Alle ersetzen.
  11. Geben Sie im Feld "Suchen" einen tabTastendruck ein.
  12. Geben Sie in das Feld "Ersetzen" ein ";"(doppelte Anführungszeichen, Semikolon, doppelte Anführungszeichen).
  13. Klicken Sie auf Alle ersetzen.
  14. Du bist fast fertig. Geben Sie für das letzte doppelte Anführungszeichen \rin das Feld "Suchen" und "\r"(doppeltes Anführungszeichen, Backslash, doppeltes Anführungszeichen) in das Feld "Ersetzen" ein. Klicken Sie auf Alle ersetzen.
  15. Solange Sie kein chinesisches Schriftzeichen usw. verwenden, können Sie die Codierung in UTF-8 ändern und die Datei sicher speichern.
Pere
quelle
-1

Ich bin schon oft auf dieses Problem gestoßen. Hier ist die einfachste Lösung, die ich mir ausgedacht habe.

  1. Speichern Sie die Datei als Excel
  2. Importieren Sie das Excel in eine Access-Tabelle
  3. Exportieren Sie die Tabelle von Access in eine Textdatei.

In Access können Sie das exportierende Trennzeichen als Komma und qualifizierende Textfelder mit Anführungszeichen angeben. Im Export-Assistenten können Sie das gewünschte Trennzeichen oder Zeichen für Zeichenfolgen angeben.

Möglicherweise müssen Sie eine Access-Abfrage erstellen, um die Felder in einer bestimmten Reihenfolge anzuordnen oder das von Access hinzugefügte Auto-ID-Feld auszublenden.

Auch ... nach dem Export in eine CSV-Datei NICHT mehr in Excel öffnen. Wenn Sie die Ergebnisse anzeigen möchten, öffnen Sie sie im Editor. Excel neigt dazu, mit den Daten einer CSV zu verwechseln. Ich glaube, es waren Felder, die mit führenden Nullen aufgefüllt wurden, wenn ich mich richtig erinnere.

Gunther
quelle
Dies scheint die Informationen in der Antwort von user326114 zu duplizieren.
Fixer1234
-1

So verwenden Sie die OpenOffice-App, um eine Excel-Tabelle zu erstellen und eine Textdatei (CSV) mit Anführungszeichen um jedes Textfeld zu erstellen.

Öffnen Sie die Excel-Datei mit OpenOffice und führen Sie die folgenden Schritte aus:

Datei> Speichern unter

Geben Sie einen neuen Namen für die zu erstellende Datei ein

Wählen Sie als Dateityp "Test CSV (.csv)"

aktiviere das Kontrollkästchen "Filtereinstellungen bearbeiten"

Klicken Sie auf "Speichern"

wähle "Aktuelles Format beibehalten"

Feldbegrenzer sollte ein Komma sein:,

Textbegrenzer sollte ein Anführungszeichen sein: "

Aktivieren Sie das Kontrollkästchen "Alle Textzellen zitieren"

OK klicken"

Das hat bei mir funktioniert!

Mary H
quelle