Import aus tabulatorgetrennten Textdateien in Excel - CR-Zeichen in Anführungszeichen werden ignoriert

432
AcePL

Ich habe eine große TXTDatei mit begrenzt TAB.
Der Text ist in Anführungszeichen eingeschlossen, aber Excel teilt die Werte immer noch in zwei Zeilen auf, wenn ein CR-Zeichen in der gekapselten Zeichenfolge angezeigt wird.

Gibt es eine Möglichkeit, Excel zu zwingen, Zeilen nicht zu brechen?

1
Könnten Sie vielleicht einen Screenshot des Problems bereitstellen und möglicherweise das Ergebnis, das Sie erwarten? piko vor 5 Jahren 0
@piko GDPR ... Bei den fraglichen Daten handelt es sich um die Adresse eines der Kunden bis hin zum sicheren Ort für Lieferungen. Ich werde es versuchen und desinfizieren, aber es könnte auch alles eingegeben werden, da es im Grunde dasselbe sein wird. AcePL vor 5 Jahren 0
natürlich keine echten Informationen posten;) Vielleicht möchten Sie auch [ähnliche Fragen] prüfen (https://stackoverflow.com/questions/2668678/importing-csv-with-line-breaks-in-excel- 2007). Es wurden verschiedene Lösungen gegeben, vielleicht passt eine für Ihre Bedürfnisse? Obwohl es für eine CSV-Datei und nicht für eine TXT-Datei gedacht ist, aber da beide Formate ähnlich sind ... Sie können Ihr TXT auch problemlos in ein CSV-Format konvertieren, das in Excel einfacher zu handhaben ist. piko vor 5 Jahren 1

1 Antwort auf die Frage

1
Wouter

Die folgende Antwort hebt das Problem teilweise hervor.

Wie J Ashley richtig feststellt, unterscheidet sich die Art und Weise, wie Excel die CSV-Datei verarbeitet, wenn Sie auf Datei-> Öffnen (oder Daten-> Importieren) doppelklicken.

Neben der Bemerkung von J Ashleys habe ich Folgendes getestet und festgestellt:

  • Wenn gekapselte Felder \ n (LF) oder \ r \ n (CR-LF) enthalten, werden sie beim Doppelklick korrekt geöffnet, erzeugen jedoch bei Verwendung von Datei-> Öffnen (oder Importieren) das von OP erwähnte Problem.
  • Wenn gekapselte Felder \ r (CR) enthalten, erzeugen sie das von OP erwähnte Problem, egal was Sie tun. Mit UTF8-BOM, No bom, Doppelklick, Datei-> Öffnen, Daten-> Importieren ... immer dasselbe Problem.

Daher scheint es keine Möglichkeit zu geben, dieses Problem in Excel zu umgehen.

Mögliche
Problemumgehung: Suchen Sie in Ihrer Datei ein Regex, um '\ r ([^ \ n])' in '\ n \ 1' zu ändern. Dadurch werden alle CRs, denen kein LF folgt, in einen LF umgewandelt. Das \ 1 dient nur dazu, das nachgestellte Zeichen zu erhalten.

Letzte Schwierigkeiten
Excel wundert mich immer wieder auf rätselhafte Weise, wie willkürlich es mit flachen Textdatendateien umgeht, ohne dem Benutzer eine Rückmeldung zu geben. Die meisten Benutzer wären jedoch überwältigt und verwirrt von der Vorstellung, dass flache Textdateien keine Excel-Dateien sind .

Bearbeiten: PowerShell-Skript zum Ersetzen in großen Dateien

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False Get-Content -Encoding UTF8 -ReadCount 1000 input.txt | Foreach-Object {  [System.IO.File]::AppendAllLines( [string]'output.txt', [string[]]($_) // TODO: add regex replacement here )  } 
Leider ist das Editieren der 'TXT'-Datei schwierig, da sie sehr groß ist. Tatsächlich gibt es mehrere, aber die Größe variiert zwischen 1 und 10 GB und enthält Zeilen zwischen 500.000 und 12 Millionen Zeilen. Die Mehrheit der Texteditoren weigert sich an der Größe. AcePL vor 5 Jahren 0
Ah, ich habe auch riesige Dateien. Ich habe ein PowerShell-Skript angehängt, das damit umgehen kann. Wouter vor 5 Jahren 0