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

C#Excel互操作,在Excel中单元格的文本中放置一个换行符,c#,excel,com-interop,C#,Excel,Com Interop,我正在使用interop编写Excel工作表。在表格中,我需要在单元格中放入一组句子。文本应采用换行方式。我怎样才能做到这一点 提前感谢。Excel单元格中的新行是LF字符,在C#中是“\n”。在VB或VBA中,我曾经使用vbCrLf(区分大小写)在Excel单元格中分隔句子以分隔行,如下所示: Dim myString As String myString = "First sentence" & vbCrLf & "Second sentence" ActiveCell.Fo

我正在使用interop编写Excel工作表。在表格中,我需要在单元格中放入一组句子。文本应采用换行方式。我怎样才能做到这一点


提前感谢。

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"

它是通过输入
“\r\n”
环境。换行符
完成的。而且还必须记住使
WrapText
属性
true
,以使换行符可见。

这个问题的答案是在要显示在excel单元格中的字符串的前面和末尾添加一个“quot”。在C#中类似于(Convert.ToChar(34)+stringToExport+Convert.ToChar(34))

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

您可以通过编程方式向单元格添加样式,如下所示


工作表.Cells.Style.WrapText=true

我遇到了这个问题,但区别在于我无法访问代码中的工作表,因为我只将其传递给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(@"""", @"""""") + '"'+ ",");
                                }

您不能为单元格指定一个宽度,然后将nowrap设置为false吗?或者需要在特定位置换行吗?嗨,我需要在一个单元格中放置多行数据。行应该是行分隔的,这意味着每行必须以新行开始。“每行必须以新行开始”??在单元格行/范围中的行,或在同一单元格中的换行?对不起,每行都应以同一单元格中的新行开头。您有接受他人答案并接受自己答案的记录。这可能会破坏名誉的目的。有趣的是,正确的答案被否决了。我给+1。当它创建一条新的线时-它在每一行的末尾放一个小的象限框-有没有办法摆脱它?嗨,对不起,我没有得到它。@Rudy这个答案不正确。Excel将仅对换行符使用
\n
\r
将保留为可见字符。在较旧的Excel版本中,
\r
将被绘制为一个矩形,如user1514042所述,在较新的版本中,它将不可见,但仍存在于单元格中(您可以将文本光标移动到可见的行尾之外,因为)(其中尚未使用换行符
\r\n
)在excel中,这不起作用。而且这个问题已经有了两年的公认答案。这对我来说很好。我没有直接在excel中测试它。我在我的应用程序中处理一个复制事件,其中包含一个文本,我想将其粘贴到excel唯一单元格中。\r\n上面的代码使它起作用。通过阅读OP自己的答案,您可以看到his的问题是数据不包含
\r\n
。这是正常的,它不直接在excel中工作。在excel中,您只需执行alt+enter:)哦,我的不好。。我以为他想在将数据粘贴到excel时去掉“\r\n”。哎呀!!希望这个feed能帮助将来的人VBCRLF在VB.NET中工作得很好。我在VB.NET中尝试了\r\n,但没有成功。回答得好,谢谢。