Wie vermeide ich doppelte Anführungszeichen beim Speichern von Excel-Dateien als Unicode?


9

Ich habe eine Excel-Datei mit Unicode-Inhalt, von der einige Zellen beispielsweise Text in doppelten Anführungszeichen enthalten "text".

Wenn ich die Excel-Datei in einer Textdatei im Unicode-Format speichere, wird der Text, der das doppelte Anführungszeichen enthält, beispielsweise als drei doppelte Anführungszeichen gespeichert """text""".

Es gibt einige Stellen, an denen ich sogar Text habe, der Komma (,) enthält. Zum Beispiel, text,in die "text,"in der Unicode-Datei konvertiert wird . Es fügt dem Text doppelte Anführungszeichen hinzu, die vermutlich Sonderzeichen enthalten.

Wie kann ich das vermeiden?

Antworten:


7

Dies ist Standardverhalten (und ähnelt der Art und Weise, wie CSV-Dateien gespeichert werden). Siehe RFC 4180 - Allgemeines Format und MIME-Typ für CSV-Dateien (Comma-Separated Values) :

Wenn zum Einschließen von Feldern doppelte Anführungszeichen verwendet werden, muss ein doppeltes Anführungszeichen in einem Feld maskiert werden, indem ein weiteres doppeltes Anführungszeichen vorangestellt wird.

Wie trifft das auf Ihren Fall zu?

  • Dies bedeutet , dass "Text" gespart werden muss , wie """Text"""die äußeren Anführungszeichen begrenzen , sind das Feld, und die beiden anderen Anführungszeichen verwendet , um die tatsächlichen Anführungszeichen zu entkommen Sie für Ihre Textfeld verwendet. Andernfalls "Text"würde nur analysiert als Textund Sie würden Ihre Anführungszeichen verlieren, wenn Sie die Datei erneut öffnen.

  • Excel wählt auch Anführungszeichen Text,, da das Komma in durch Kommas getrennten Dateien als Trennzeichen text,verwendet wird. Wenn Sie es nicht in Anführungszeichen setzen, wird es beim erneuten Öffnen der Datei als zwei Felder analysiert.

Wenn Sie sie nicht in Ihrer Ausgabe haben möchten, sollten Sie die resultierenden Dateien in einem Texteditor öffnen und alle Anführungszeichen mit einem einfachen Suchen und Ersetzen entfernen.


2
Sie meinen, es gibt keine andere Möglichkeit, das Problem zu lösen, als sie im Texteditor zu ersetzen.
Karthik

Nicht wirklich, da Excel dies aus Kompatibilitätsgründen tun muss. Vielleicht ist es möglich, ein Makro zu entwickeln, das einen benutzerdefinierten Export ausführt, aber ich bin kein Experte in diesem Bereich.
Slhck

Ok, danke, vielleicht werde ich versuchen, es auf der Codierungsseite zu ersetzen.
Karthik

@slhck: Ich bin vor Problem während Unicode als CSV - Einsparung im Jahr 2010 superuser.com/q/1210099/234380
NJMR

3

Ich hatte auch dieses Problem. Dann bemerkte ich, dass ich die Option Speichern unter: Option " Formatierter Text (durch Leerzeichen getrennt) " übersah . Sie müssen auch die angeben. txt- Erweiterung, oder es wird standardmäßig eine .prn-Erweiterung verwendet. Beispiel: Dateiname.txt statt nur Dateiname. Probieren Sie es aus . Es funktioniert .


Wird durch Leerzeichen anstelle von Tabulatoren getrennt, und die Breite der Spalten scheint standardmäßig auf etwa 8 Zeichen begrenzt zu sein.
JosiahYoder-Deaktiv außer

Dies funktioniert nicht, wenn die Zellen so etwas enthalten "A short sentence". Petes Antwort unten ist die einzige, die für mich funktioniert hat.
Micah Lindström

2

Das Speichern in Unicode schien Anführungszeichen hinzuzufügen, selbst wenn meine Zeichenfolge keine Anführungszeichen enthielt. So bin ich darum herumgekommen:

  1. Suchen Sie eine Zeichenfolge, die nicht in Ihrer Datei enthalten ist (die ich verwendet habe xxx).
  2. Suchen und ersetzen Sie vor dem Export alle doppelten Anführungszeichen "durchxxx
  3. Exportieren Sie Ihre Datei nach txt oder csv.
  4. Öffnen Sie txt-Dateien und suchen und ersetzen Sie alle Anführungszeichen durch nichts
  5. Alle suchen und xxxdurch Anführungszeichen ersetzen

Beachten Sie, verwenden Sie replacementnicht 'replacement'. Das Ersetzen der doppelten Anführungszeichen durch ein einfaches Anführungszeichen verursacht Probleme, wenn es sich am Anfang einer Zelle befindet. Grundsätzlich sieht Excel am Anfang einer Zelle ein einfaches Anführungszeichen, das bedeutet, dass es als Text interpretiert wird. Daher wird es beim Exportieren nach txt / csv entfernt. Ich habe das auf die harte Tour herausgefunden, lol.
Micah Lindström

0

Speichern Sie Ihre Datei einfach als Leerzeichen delimited.prn in Excel und benennen Sie sie dann in .txt um. Ich habe dies für eine Krise von 18000 Zeilen verwendet. ;)

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.