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 ) }