Если вы делаете это вручную, загрузите LibreOffice и используйте LibreOffice Calc для импорта вашего CSV. Он намного лучше справляется с подобными вещами, чем любая версия Excel, которую я пробовал, и может сохранять в XLS или XLSX по мере необходимости, если вам впоследствии понадобится перейти в Excel.
Но если вы застряли в Excel и нуждаетесь в улучшении, похоже, есть способ. Кажется, это зависит от локали (что, по моему скромному мнению, кажется идиотским). У меня нет Excel 2007, но есть Excel 2010 и приведенный пример:
ID,Name,Description
"12345","Smith, Joe","Hey.
My name is Joe."
не работает. Я написал его в Блокноте и выбрал Сохранить как ..., а рядом с кнопкой Сохранить можно выбрать кодировку. Я выбрал UTF-8, как было предложено, но безуспешно. Однако замена запятых на точку с запятой сработала для меня. Больше я ничего не менял, и это просто сработало. Поэтому я изменил пример, чтобы он выглядел так, и выбрал кодировку UTF-8 при сохранении в Блокноте:
ID;Name;Description
"12345";"Smith, Joe";"Hey.
My name is Joe."
Но есть загвоздка! Единственный способ, которым это работает, - это дважды щелкнуть файл CSV, чтобы открыть его в Excel. Если я попытаюсь импортировать данные из текста и выберу этот CSV, он все равно не удастся найти в кавычках новой строки.
Но есть еще один загвоздка! Разделитель рабочего поля (запятая в исходном примере, точка с запятой в моем случае), похоже, зависит от региональных настроек системы (задается в Панели управления -> Регион и язык). В Норвегии десятичным разделителем является запятая. Кажется, что Excel избегает этого символа и предпочитает точку с запятой. У меня есть доступ к другому компьютеру, настроенному на британский английский язык, и на этом компьютере первый пример с разделителем запятой работает нормально (только при двойном щелчке), а тот, что с точкой с запятой, действительно не работает! Вот и все о совместимости. Если вы хотите опубликовать этот CSV-файл в Интернете, а у пользователей может быть Excel, я думаю, вам нужно опубликовать обе версии и предложить людям проверить, какой файл дает правильное количество строк.
Итак, все детали, которые мне удалось собрать, чтобы заставить это работать:
- Файл должен быть сохранен как UTF-8 со спецификацией, что и делает Блокнот, когда вы выбираете UTF-8. Я попробовал UTF-8 без спецификации (можно легко переключить в Notepad ++), но затем дважды щелкнуть документ не удалось.
- Вы должны использовать запятую или точку с запятой, но не тот, который является десятичным разделителем в ваших региональных настройках. Возможно, работают другие персонажи, но я не знаю какие.
- Вы должны заключить в кавычки поля, содержащие новую строку с символом ".
- Я использовал окончания строк Windows (\ r \ n) как в текстовом поле, так и в качестве разделителя записей, это работает.
- Вы должны дважды щелкнуть файл, чтобы открыть его, импорт данных из текста не работает.
Надеюсь, это кому-то поможет.