Eu apenas tentei um teste rápido que replicou seu problema.
Eu criei um CSV de 1 linha no Word (que usa aspas inteligentes) como test.csv "123", "4,5,6" e abriu no Excel como você descreveu.
Tente substituir "e" por "
Tendo jogado com sua amostra, noto que o Excel não gosta dos espaços entre os campos
por exemplo. em vez de
"20051", "", "2009 Sep 30 02:53:23", ...
você quer
"20051","","2009 Sep 30 02:53:23",...
um substituto de expressão regular decente deve ser capaz de lidar com ele
Find: |("[^"]*",) |
Replace: ||
(caracteres de canal apenas para sugestões visuais)
Ou simplesmente modifique o código .Net se você tiver acesso a ele; -)
Além disso, como apontou Arjan out , você também pode precisar converter o arquivo de UTF-8 para ANSI para impedir que a célula A1 contenha a BOM e seus qoutes adjacentes.
Eu vi o Catch 22 do CSV codificado em ANSI não manipulando caracteres internacionais e o CSV codificado em UTF não sendo manipulado pelo Excel; e não encontrei uma solução enquanto mantinha o CSV. Se o suporte a caracteres internacionais for necessário, os formatos XML (ou XLS nativo) parecerão o único caminho a seguir - com o custo da simplicidade.