首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Problem copy+pasting CR+LF an excel spreadsheet need soft段落(Alt+Enter)

Problem copy+pasting CR+LF an excel spreadsheet need soft段落(Alt+Enter)
EN

Stack Overflow用户
提问于 2010-02-04 20:25:21
回答 2查看 2K关注 0票数 1

我正在尝试将我们软件中创建的表格复制到excel电子表格中。

我们的应用程序中的一些标题标题太大,无法放入一列中,因此它们由#13+#10 (CR+LF)分隔,因此它们位于下一行。例如:

代码语言:javascript
复制
Strain  SpikeConc  Spike
        ng/g       dpm/g
-------------------------
Blah    20.0       50.1
Blah2   22.1       60.2

然而,当它被复制到excel中时,会发生一件奇怪的事情。CR+LF被解释为(您猜对了)一个新的行请求。因此,我们得到了一些看起来完全错误的东西。例如:

代码语言:javascript
复制
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 (不要问)

EN

回答 2

Stack Overflow用户

发布于 2010-02-04 20:40:28

正如评论中提到的,这是我们用来剥离CR的函数。无论是这个函数还是用双引号括起来的字符串,都足以在excel中有一个软回车。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2010-02-04 20:43:45

真是太棒了。如果我这样说

代码语言:javascript
复制
"SpikeConc #13+#10 ng/g" 

它在excel中正确地显示它,如下所示

代码语言:javascript
复制
SpikeConc
ng/g

谢谢。快把我逼疯了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2199572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档