Я только что попробовал быстрый тест, который повторил вашу проблему.
Я создал CSV с 1 строкой в Word (который использует умные кавычки) как test.csv «123», «4,5,6», и он открылся в Excel, как вы описали.
Попробуйте заменить «и» на «
Поиграв с вашим образцом, я заметил, что Excel не любит пробелы между полями
например, вместо
"20051", "", "2009 Sep 30 02:53:23", ...
ты хочешь
"20051","","2009 Sep 30 02:53:23",...
достойная замена регулярного выражения должна быть в состоянии справиться с этим
Find: |("[^"]*",) | Replace: |\1|
(символы канала только для визуальных подсказок)
Или просто измените код .Net, если у вас есть к нему доступ ;-)
Кроме того, как указал Арджан, вам также может понадобиться преобразовать файл из UTF-8 в ANSI, чтобы ячейка A1 не содержала спецификацию и окружающие ее квоты.
Я сталкивался с Catch 22 CSV в кодировке ANSI, не обрабатывающей международные символы, и CSV в кодировке UTF, которая не обрабатывается Excel должным образом; и не нашел решения при сохранении CSV. Если требуется международная символьная поддержка, форматы XML (или собственные XLS) кажутся единственным выходом - за счет простоты.