我正在尝试将我们软件中创建的表格复制到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,并在新单元格中创建了一个新行,而不是像按Alt+Enter键那样创建一个软段落,然后在同一个单元格中给出一个新行。
有没有人知道如何编码一个软段落而不是新行?
我尝试过单独使用CR (#13)和LF (#10),但它们都有相同的行为。
我相信有一些unicode字符
LS:行分隔符,U+2028
PS:段落分隔符,U+2029
但我似乎找不到如何将它们编码到我的应用程序的表中。
附言:我们使用的是Delphi6 (不要问)
发布于 2010-02-04 20:40:28
正如评论中提到的,这是我们用来剥离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;发布于 2010-02-04 20:43:45
真是太棒了。如果我这样说
"SpikeConc #13+#10 ng/g" 它在excel中正确地显示它,如下所示
SpikeConc
ng/g谢谢。快把我逼疯了。
https://stackoverflow.com/questions/2199572
复制相似问题