Я столкнулся с этой проблемой, но разница в том, что у меня нет доступа к рабочему листу в коде, так как я только передаю его потоку памяти и затем создаю файл в формате .csv.
foreach (var s in propertyValues)
streamWriter.WriteLine(s);
streamWriter.Flush();
memoryStream.Seek(0, SeekOrigin.Begin);
Я использую его отсюда.
subjExportData.FileStream = stream;
subjExportData.FileName = string.Format("SubjectExport_{0}.csv", DateTime.Now.ToString("ddMMyyyy_HHmm"));
Таким образом, предложение установить обтекание текстом или ячейкой здесь не вариант. Получил работу, используя приведенный выше ответ, плюс поставил двойные кавычки до и после текста / строки. Заменой является обработка, когда в предложении тоже есть двойная кавычка. Таким образом, это решение обрабатывает новую строку, запятую и двойные кавычки внутри предложения или абзаца.
if (value.ToString().Contains("\n"))
{
value = value.ToString().Replace("\n", "\r\n");
sb.Append('"'+ value.ToString().Replace(@"""", @"""""") + '"'+ ",");
}