it-swarm.com.de

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

Excel platziert nur Anführungszeichen um bestimmte Felder. Wie erzwinge ich, dass Excel eine CSV-Datei mit Anführungszeichen um jede Spalte speichert?

84

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 to CSV with LibreOffice

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

44
Pete

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

42
sahmeepee

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 "''"@"''", dh doppeltes Anführungszeichen, einfaches Anführungszeichen, doppeltes Anführungszeichen, @ -Symbol, doppeltes Anführungszeichen, einfaches Anführungszeichen, doppeltes Anführungszeichen.

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

17
Michael

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.

8
ssaviers

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.

4
user326114

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-von-Zellen-zu-exzellieren-automatisch/

2
Steve Coleman
  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: For¬mat Cells → Tab: Number → Category: Custom
  3. Fügen Sie die folgenden Angaben in das Feld Typ ein: "''" @ "''" (siehe Details 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
2
eric

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 zuzufügen.

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

2
Blueacid

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 dann auf menu Edit/Column Editor ... , in field ' Einzufügender Text ', 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.

1
Michael Zhang

Michaels Antwort vom 21. August 2014 ist wirklich hilfreich. Ich musste jedoch ein 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 ; (Verwendet als Trennzeichen in der deutschen Version von Excel) mit,
  4. Speichern Sie die überarbeitete CSV-Datei
0
user366932

Eine andere Möglichkeit, wenn Sie MS Access (I have ver 2007) haben, die Datei zu importieren und dann als Textdatei zu exportieren. Ä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.

0
Dean

Das Exportieren von durch Kommas getrennten und in Anführungszeichen gesetzten Zeichenfolgen kann nur mit Excel 2016 und Notepad durchgeführt werden. Dabei werden eine Kopie der Daten, eine Formel, ein Export, eine Änderung der Dateieigenschaften, ein Ersatz im 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. Geben Sie ansonsten nicht vorkommende Zeichen ein, sagen Sie '#' oder ';-)' an jedem Ende einer Zeichenfolge in der Spalte und sagen Sie A mit der Formel =concat("#",trim(A1),"#"). Fügen Sie die Formel in alle Zeilen einer anderen Spalte ein.

    • 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 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.

0
HGB

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 ist, bei der der "''"@"''"-Ansatz nichts mit den Zahlen zu tun hat. Manchmal ist die zweite Spalte ist leer, aber ich brauchte, um sicherzustellen, dass es in der endgültigen Textdatei dargestellt.

0
user415149

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 die Meldung #1083 - Field separator argument is not what is expected angezeigt wird.

0
Greg