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"
。
在VB或VBA中 ,我曾经使用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))