如何使用C#从excel文件创建树状结构?

时间:2017-01-16 10:52:20

标签: c# excel

我正在尝试从excel文件创建层次结构。 样本数据如下:

Path    Description
1            a
1.1          b
1.1.1        c
1.2          d
1.3          e

现在,我需要阅读每个细胞并检查它是否有孩子,

输出必须为,

Path           Description
1              a
 1.1           b
  1.1.1        c
 1.2           d
 1.3           e

如何使用C#实现此目的并在控制台上打印? 请帮助我。

1 个答案:

答案 0 :(得分:0)

我怀疑你想要别的东西,但你的问题回答了以下代码:

var source = @"Path    Description
1            a
1.1          b
1.1.1        c
1.2          d
1.3          e";

var lines =
    source
        .Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
        .Select(x => x.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries));

var results =
    lines
        .Skip(1)
        .Select(x => new
        {
            Indent = x[0].Count(y => y == '.'),
            Path = x[0],
            Description = x[1]
        })
        .Select(x =>
            String.Format(
                "{0}{1}{2}{3}",
                "".PadLeft(x.Indent + 1).Substring(1),
                x.Path,
                "".PadLeft(15 - x.Path.Length - x.Indent),
                x.Description));

Console.WriteLine(String.Join(Environment.NewLine, results));

它给出了:

1              a
 1.1           b
  1.1.1        c
 1.2           d
 1.3           e