C#Excel互操作,在Excel的单元格文本中放置一个换行符

我正在使用互操作书写一个Excel工作表。 在工作表中,我需要将一组句子放到一个单元格中。 文本应该以换行方式。 我怎样才能做到这一点?

提前致谢。

这是通过input“\ r \ n”或Environment.NewLine来完成的。 而且还必须记住要使WrapText属性为真,以便可见线路刹车。

您可以按照以下方式将程序添加到单元格中

worksheet.Cells.Style.WrapText = true;

Excel单元格中的新行是LF字符,它是C#中的“\ n”。 不要忘记将单元格的WrapText属性设置为TRUE。

Excel单元格中的新行是LF字符,它是C#中的"\n"

VBVBA中 ,我曾经使用vbCrLf (区分大小写)将句子分隔到Excel单元格中的单独行中,如下所示:

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

C#中 ,我相当确信VB的vbCrLf的C#等价物是"\r\n" ,因此:

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

我遇到这个问题,但不同的是我没有访问工作表的代码,因为我只传递给内存stream,然后创build文件为.csvtypes。

 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")); 

所以这里build议设置文本或单元格换行不是一个选项。 得到它使用上面的答案,加上前后文本/string双引号。 replace就是在句子里面还有双引号的时候处理。 所以这个解决scheme在句子或段落内处理新行,逗号和双引号。

 if (value.ToString().Contains("\n")) { value = value.ToString().Replace("\n", "\r\n"); sb.Append('"'+ value.ToString().Replace(@"""", @"""""") + '"'+ ","); } 

这个问题的答案是在你要在你的Excel单元格中显示的string的前面和后面添加一个“quot”。 在C#中,它会像(Convert.ToChar(34)+ stringToExport + Convert.ToChar(34))