我正在尝试将在我们的软件中创建的表格复制到Excel电子表格中。
我们的应用程序中的一些标题标题太大而不适合列,因此它们被#13 +#10(CR + LF)分隔,因此它们位于下一行。 e.g。
Strain SpikeConc Spike
ng/g dpm/g
-------------------------
Blah 20.0 50.1
Blah2 22.1 60.2
然而,当这被复制到excel时,我们发生了一件奇怪的事情。 CR + LF被解释为(您猜对了)一个新的行请求。因此,我们得到的东西看起来完全错误。 e.g。
Strain SpikeConc
ng/g Spike
dmp/g
-------------------------
Blah 20.0 50.1
Blah 22.1 60.2
在SpikeConc错误地解释CR + LF并在新单元格中创建一个新行,而不是创建一个软段落,就像你按下Alt + Enter并在同一单元格中给你一个新行一样。
任何人都有任何想法如何编码软段而不是新行?
我尝试使用CR(#13)就可以自己使用它只是LF(#10),但它们都有相同的行为。
我相信有一些unicode字符
LS:行分隔符,U + 2028
PS:段落分隔符,U + 2029
但我似乎无法找到如何将它们编码到我的应用程序表中。
PS我们正在使用Delphi6(不要问)
答案 0 :(得分:1)
正如评论中所提到的,这是我们用来去除CR的功能。这个或用双引号括起字符串就足以在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;
答案 1 :(得分:1)
那太棒了。如果我这样说的话
"SpikeConc #13+#10 ng/g"
它在excel中正确显示它
SpikeConc
ng/g
感谢。这让我发疯了。