Я создаю файл CSV (разделенный запятыми, а не табуляцией). Мои пользователи, скорее всего, откроют CSV-файл в Excel, дважды щелкнув его. Мои данные могут содержать запятые и речевые знаки, поэтому я избегаю их следующим образом.
Reference, Title, Description
1, "My little title", "My description, which may contain ""speech marks"" and commas."
2, "My other little title", "My other description, which may also contain ""speech marks"" and commas."
Насколько я знаю, так было всегда. Вот моя проблема: когда я открываю этот файл в Excel 2010, мое побег не соблюдается. Знаки речи появляются на листе, а запятая приводит к появлению новых столбцов.
java
excel
csv
special-characters
Centralscru
источник
источник
Ниже приведены правила, если вы считаете, что это случайно. На основе этих правил может быть создана функция полезности.
Если значение содержит запятую, новую строку или двойные кавычки, тогда значение String должно быть возвращено в двойных кавычках.
Любые символы двойных кавычек в значении должны быть экранированы другой двойной кавычкой.
Если значение не содержит запятую, новую строку или двойные кавычки, значение String должно быть возвращено без изменений.
источник
Согласно инструкциям Яшу, я написал следующую функцию (это код PL / SQL, но он должен быть легко адаптирован к любому другому языку).
источник
Одинарные кавычки тоже работают нормально, даже без экранирования двойных кавычек, по крайней мере, в Excel 2016:
Excel поместит это в 5 столбцов (если вы выберете одинарную кавычку в качестве «квалификатора текста» в мастере «Преобразование текста в столбцы»)
источник
Даже после двойных кавычек у меня была эта проблема несколько дней.
Заменен разделитель каналов на запятую, после чего все заработало.
источник