C# Excel interop, поместите разрыв строки в текст ячейки в Excel

Я пишу лист Excel с помощью Interop. В листе мне нужно поместить набор предложений в ячейку. Текст должен быть разбит на строки. Как я могу достичь этого?

спасибо заранее.

7 ответов


Это было сделано путем ввода "\r\n"или среды.новая строка. А также не забудьте сделать свойство WrapText true, чтобы увидеть тормоза линии.


вы можете добавить стиль к ячейкам programically как bellow

листе.Ячейки.Стиль.Переносить по словам = истина;


на В. Б. или VBA, я использовал vbCrLf (С учетом регистра) для разделения предложений для разделения строк в ячейке Excel, например:

Dim myString As String
myString = "First sentence" & vbCrLf & "Second sentence"
ActiveCell.ForumulaR1C1 = myString

на C#, Я довольно уверен, что эквивалент C# VB vbCrLf и "\r\n" отсюда:

myString = "First sentence\r\n" + "Second sentence"

новая строка в ячейке Excel - это символ LF, который является "\n " в C#. И не забудьте установить для свойства WrapText ячейки значение TRUE.


новая строка в ячейке Excel - это символ LF, который является "\n" в C#.


я столкнулся с этой проблемой, но разница в том, что у меня нет доступа к листу в коде, поскольку я передаю его только memorystream, а затем создаю файл как .тип 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(@"""", @"""""") + '"'+ ",");
                                }

ответом на этот вопрос является добавление" quot " спереди и в конце строки, которую вы хотите отобразить в своей ячейке excel. В C# это будет что-то вроде (Convert.ToChar (34) + stringToExport + конвертировать.ToChar(34))