Excel поддерживает новые строки в значениях. Например, используя пользовательский интерфейс Excel, вы можете ввести "foo\n\bar\nbaz"
в ячейку, набрав Alt-Enter для каждого перевода строки.
Хитрость в Excel заключается в том, что в локалях, где запятая используется в качестве десятичной точки, Excel использует двоеточие в качестве разделителя полей. Не существует универсального / международного формата, который читал бы любой Excel.
Я был бы очень удивлен, если бы в Java не было пакета для чтения / записи файлов CSV. Python имеет один , который позволяет указывать разделитель, символ кавычки, разделитель записей и т. Д. Как на входе, так и на выходе.
Однако, если вы хотите написать свой собственный, следуйте этому псевдокоду для каждой строки, которую вы хотите написать:
for each field in the row:
if field contains quotechar:
double all quotechars in field
field = quotechar + field + quotechar
else if field contains delimiter, CR, or LF:
field = quotechar + field + quotechar
else:
avoid waste of space and ugly visual impact by NOT doing unneeded quoting
join field strings separated by delimiter
append CR LF
write the row string using binary mode (so Windows runtime doesn't give you 2xCR)
Обратите внимание: (1) все вышеперечисленное основано на 8-битных символах (2) Я избегал использования неоднозначного термина «новая строка».