我正在尝试创建一个脚本来从DB返回concat行,并使用c#用文本填充excel文件。
我管理好了所有事情,只是找不到换行的解决方案......
尝试过char(10)+ char(13)等等。
我知道在excel中如果想要添加新行,他会显示使用alt + enter。是否有代码添加到我的tsql脚本中以获取excel文件中的换行符?
谢谢你, 埃雷兹
答案 0 :(得分:2)
我遇到了同样的问题,但我的是从SQL Server Management Studio结果窗口复制并粘贴到Excel文件中。它是同一个问题,更直接。
对于那些不了解问题的人来说,这里有一个复制品。在SSMS中运行以下命令,并将结果复制并粘贴到Excel中。设置单元格以包装文本。
SELECT 'Hello' + CHAR(10) + 'World'
你会在一个单元格上看到Hello,在它下面的单元格上看到World。我们试图看到的是
Hello
World
在一个包含换行符的单元格中。
我的解决方案是将结果用引号括起来。有几种方法可以做到这一点。我发现这看起来最干净:
SELECT QUOTENAME('Hello' + CHAR(10) + 'World', '"')
结果是" Hello World"在SSMS结果窗口中。但是当粘贴到Excel并使用换行文本设置单元格时,我会得到所需的结果。
答案 1 :(得分:0)
Cr + Lf实际上是13 + 10而不是10 + 13。
如果这不起作用,则会有一个char(10)。
答案 2 :(得分:0)
我的问题的解决方案是什么在tsql中使用
并在c#中解码它,因为我从DataSet创建一个html表,然后将html表转换为excel样式表。
SQL:
SELECT br_in.BIText + '<br>'
C#:
StrReport.Append("<td>" + HttpUtility.HtmlDecode(ds.Tables[k].Rows[i][j].ToString()) + "</td>");
这是唯一适用于我的情况,如果你考虑它甚至有意义......
谢谢你, 埃雷兹
答案 3 :(得分:0)
这是我可以使用它的唯一方法
SQL:选择'=“ Hello”&CHAR(10)&“ World”'
在Excel中,我还必须为单元格设置自动换行文本。
答案 4 :(得分:0)
就我而言,它与以下对象一起工作
string text = String.Format(“ \” {0} \“”,text);
通过将测试设置为此格式,它将在Excel中创建alt + Enter。