Что происходит, это следующее.
- Excel смотрит на ваши системы Региональные настройки, чтобы найти, какой разделитель списка настроен, в вашем случае запятая. Здесь важно отметить, что CSV - это не один четко определенный формат. Можно использовать любой разделитель ...(Изменить: Ну, на самом деле, есть руководство, которое разделяет разделитель до запятой, но это не обязательный стандарт, и руководство не строго соблюдается на практике.)
- Затем Excel преобразует данные в памяти в файл XLSX. Вы делаете свои превосходные вещи. Имейте в виду, что это, по сути, преобразование типов файлов, и Excel не помнит, в какой кодировке находился ваш исходный файл или какой разделитель использовался.
- Вы делаете клетки и нажимаете Сохранить. В этот момент в Excel больше нет файла CSV, но есть файл XLSX, и ему необходимо преобразовать его обратно во что-то "похожее на CSV". Поскольку он знает, что кодировка должна быть UTF-8 с спецификацией, он решает сохранить как "текст Unicode" (он делает это без явного упоминания об этом). В этом формате они используют UCS-2 LE с BOM в качестве кодировки и табуляцией в качестве разделителя. Это не тот стандарт CSV, который вы имели в виду, или стандарт, в котором ваш исходный файл был отформатирован. Странно и нелогично, но, строго говоря, не так.
Так что ты можешь сделать?
Теоретически вы должны иметь возможность использовать параметр "Сохранить как CSV", а через меню "Сервис" -> "Параметры сети" (в диалоговом окне "Сохранить как") установить кодировку UTF8. Единственная проблема здесь в том, что это, кажется, не работает должным образом. Я предполагаю, что это сломанная особенность. Подробнее о переполнении стека: Excel в CSV с кодировкой UTF8
Итак, что вы действительно можете сделать?
Просто используйте UTF-8 BOM, сохраните и откройте получившийся CSV-файл, чтобы заменить все вкладки запятыми.
И что ты действительно должен делать?
Не используйте Excel для загрузки и редактирования файлов CSV. Или, по крайней мере, быть осторожнее ...
Почему бы и нет?
Я написал (слишком долго) статью об этом здесь.