问题复制粘贴CR + LF到Excel电子表格需要软段落(Alt + Enter)
我试图将我们的软件中创build的表复制到Excel电子表格中。
我们应用程序中的一些标题头太大而不适合列,所以它们被#13 +#10(CR + LF)分开,所以它们坐在下一行。 例如
Strain SpikeConc Spike ng/g dpm/g ------------------------- Blah 20.0 50.1 Blah2 22.1 60.2
但是,当这被复制到Excel中,我们得到一个奇怪的事情发生。 CR + LF被解释为(你猜对了)一个新的行请求。 因此,我们得到的东西看起来完全错误。 例如
Strain SpikeConc ng/g Spike dmp/g ------------------------- Blah 20.0 50.1 Blah 22.1 60.2
SpikeConc错误地解释了CR + LF,并在新单元格中创build一个新行,而不是创build一个像段落一样的软段落,如果按Alt + Enter并在同一个单元格中给出一个新行。
任何人有任何想法如何编码一个软的段落,而不是一个新的路线?
我已经尝试过使用CR(#13)和它自己的LF(#10),但它们都有相同的行为。
我相信有一些unicode字符
LS:行分隔符,U + 2028
PS:段落分隔符,U + 2029
但我似乎无法find如何将它们编码到我的应用程序中的表格。
PS我们使用Delphi6(不要问)
太精彩了。 如果我这样说
"SpikeConc #13+#10 ng/g"
它在Excel中像这样正确显示它
SpikeConc ng/g
谢谢。 那让我疯狂
正如在评论中提到的那样,这是我们用来剥离CR的function。 要么这个或用双引号括住string就足以在Excel中有一个软返回。
function RemoveCr(const Value: string): string; var I, J: Integer; begin J := 0; SetLength(Result, Length(Value)); for I := 1 to Length(Value) do if Value[I] <> #13 then begin Inc(J); Result[J] := Value[I]; end; SetLength(Result, J); end;