我正在使用interop编写Excel表格。在表格中,我需要将一组句子放入一个单元格中,并且这些文本需要按照换行的方式呈现。我该如何实现这个目标?
提前感谢您的帮助。
我正在使用interop编写Excel表格。在表格中,我需要将一组句子放入一个单元格中,并且这些文本需要按照换行的方式呈现。我该如何实现这个目标?
提前感谢您的帮助。
这可以通过输入 "\r\n"
或者 Environment.NewLine
来完成。同时,还要记得将 WrapText
属性设置为 true
,以便使换行符可见。
\n
作为换行符,\r
将保留为可见字符。在早期版本的 Excel 中,\r
将像 user1514042 所提到的那样被绘制成矩形,在较新版本中它将是不可见的,但仍然存在于单元格中(你可以移动文本光标超出可见行的末端,因为还有其他内容)。 - GSerg在Excel单元格内的换行符是LF字符,在C#中是“\n”。不要忘记将单元格的WrapText属性设置为TRUE。
在Excel单元格内换行是LF字符,C#中表示为"\n"
。
Dim myString As String
myString = "First sentence" & vbCrLf & "Second sentence"
ActiveCell.ForumulaR1C1 = myString
vbCrLf
是"\r\n"
,因此:myString = "First sentence\r\n" + "Second sentence"
我遇到了这个问题,但不同的是我在代码中没有访问工作表的权限,因为我只是将它传递给内存流,然后创建文件作为 .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(@"""", @"""""") + '"'+ ",");
}
这个问题的答案是在你想要在Excel单元格中显示的字符串前面和后面添加一个“引号”。在C#中,它可能是这样的(Convert.ToChar(34) + stringToExport + Convert.ToChar(34))。
\r\n
)到Excel中,这种方法不起作用。同时该问题已经有了一个被接受的答案已经存在2年之久。 - OGHaza\r\n
。 - OGHaza