Я пытаюсь сделать экспорт некоторых данных, которые у меня есть (хранятся в базе данных). Некоторые из этих значений имеют разрыв строки. Теперь каждый раз, когда я пытаюсь импортировать файл в Excel (2010), разрывы строк распознаются как новая строка вместо фактического переноса строки.
Я искал несколько часов, видел много решений, но я просто не могу исправить это.
Способ вывода файла в формате csv:
(переменная csvfile является строителем строк)
context.Response.Clear();
context.Response.ContentType = "text/csv";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.Write(csvfile.ToString());
context.Response.End();
Когда я открываю его с помощью Excel вручную, он отображается нормально. Но поскольку Excel 2003 не поддерживает формат файла, я должен импортировать его. При импорте он видит разрывы строк (\ n в полях) как новую строку.
К сожалению, я не могу дать вам пример реальных данных, с которыми я работаю (это все личные данные), но я могу привести вам пример того, как все идет не так:
Header1,Header2,Header3
"value1","value2","value 3
and this is where its going wrong"
Это простой CSV-файл, и когда вы импортируете его, вы увидите, где он идет не так. По умолчанию я инкапсулирую поля двойными кавычками. Я также удаляю начальные пробелы из значений по умолчанию.
Я потратил как минимум 2 дня на эту, казалось бы, простую проблему, но я не могу понять, как я могу это исправить. Я видел несколько тем по этой же проблеме, но ни одно из предложенных там решений, похоже, не исправило это.