【问题标题】:How to get wrapped text from Excel cell?如何从 Excel 单元格中获取换行的文本?
【发布时间】:2021-11-17 07:09:02
【问题描述】:

我想知道如何使用 ClosedXML 从 Excel 单元格中获取换行文本。

(ClosedXML版本为0.95.4,使用C#[Visualstudio 2017])

例如: excel单元格数据(文本)如下

abc
xyz

我想要

abc
xyz

(=换行文本),但我得到abcxyz(=没有换行文本)。

我尝试了几种方法(如下),结果都是一样的。

tgtcell.RichText
tgtcell.GetString()
tgtcell.Value.ToString()

等等

谁能告诉我如何获得它?

【问题讨论】:

  • 为什么是"wrapped"?我很好奇。您是否检查过abcxyz 之间没有非打印字符(例如,您是否检查过您得到的字符串的Length 属性
  • 它被包装了,因为它是其他人提供的输入文件。
  • 我检查了字符串的长度。

标签: c# closedxml


【解决方案1】:

现在原因已经知道了。在输入了换行文本的单元格中,混入了未换行的文本。(仅通过指定样式格式进行换行。) 不幸的是,这是我测试的单元格,所以看起来不可读。

【讨论】:

  • 结束这个问题的方法是,一旦你能够,将你的答案标记为“已接受”。这将与其他人沟通此问题已解决。
【解决方案2】:

(这更像是一个扩展的评论,而不是一个明确的答案)

我创建了一个 Excel 文件,我在其中的单元格 A1 中输入了ABC<Alt>+<Enter>xyz。这将ABC 放在一行上,xyz 在它下面(都在同一个单元格中)。然后我保存并关闭了 Excel。

然后我在 Microsoft“OpenXML Productivity Tool”中打开了该文件(不幸的是,该文件已从“Microsoft.com”中删除,但仍可在 GitHub 上找到)。

如果我查看文件的共享字符串部分,我可以将其视为 XML:

<x:sst count="1" uniqueCount="1" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <x:si>
    <x:t>ABCxyz</x:t>
  </x:si>
</x:sst>

但是,如果我查看反映的代码(反映到 C# 中),我会看到:

public class GeneratedClass
{
    // Creates an SharedStringTable instance and adds its children.
    public SharedStringTable GenerateSharedStringTable()
    {
        SharedStringTable sharedStringTable1 = new SharedStringTable(){ Count = (UInt32Value)1U, UniqueCount = (UInt32Value)1U };

        SharedStringItem sharedStringItem1 = new SharedStringItem();
        Text text1 = new Text();
        text1.Text = "ABC\nxyz";

        sharedStringItem1.Append(text1);

        sharedStringTable1.Append(sharedStringItem1);
        return sharedStringTable1;
    }
}

所以看起来 Excel 在单个单元格的行之间存储了一个 Unix 换行符。我不知道为什么它没有出现在 XML 中。

我远不是 OpenXML 专家,但我已经成功使用过几次(主要是生成文件,而不是解析它们)。我从未使用过 ClosedXML。我不知道 Wrapped Text 是什么意思(你的解释也没有帮助)。但是,我可以看到文件中的两行文本。

我不知道这是否会对您有所帮助 - 我希望如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多