A resposta a seguir destaca parcialmente o problema.
Como J Ashley aponta corretamente, há uma diferença entre o modo como o Excel lida com o arquivo CSV ao clicar duas vezes em File-> Open (ou Data- > import).
Além da observação de J Ashley, eu testei e concluí o seguinte:
- Quando os campos encapsulados contêm \ n (LF) ou \ r \ n (CR-LF), eles abrem corretamente quando você clica duas vezes, mas produz o problema mencionado por OP ao usar Arquivo- > Abrir (ou importar)
- Quando os campos encapsulados contêm \ r (CR), eles produzem o problema mencionado pelo OP, não importa o que você faça. Usando UTF8-BOM, No bom, clique duas vezes em File -> Open, Data - > Import ... sempre com o mesmo problema.
Portanto, não parece haver nenhuma maneira de contornar esse problema no Excel.
Solução possível
Faça um Regex localizar / substituir em seu arquivo para alterar '\ r ([^ \ n])' em '\ n \ 1'. Isso altera todos os CRs que não são seguidos por um LF em um LF. O \ 1 é apenas para preservar o caractere final.
Final toughts
O Excel continua me surpreendendo de maneiras misteriosas sobre o quão arbitrário ele lida com arquivos de texto sem fornecer feedback para o usuário ... Então, novamente, a maioria dos usuários ficaria confusa com a noção de que arquivos de texto simples não são arquivos Excel .
Edit: script do Powershell para localizar substituir em arquivos grandes
$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
)
}