首页 > 解决方案 > 将列添加到 CSV 并将列合并到此新列

问题描述

我有一个这样的 CSV 文件:

Header1;Header2;Header3;Header4;Header5;Header6
abc;123;xyz;...;...;...

我想在这个 csv 的末尾添加一个新列,并直接在这个新列中合并第 1+2 列:

Header1;Header2;Header3;Header4;Header5;Header6;Header7
abc;123;xyz;...;...;...;abc123

我能够添加一个新列,但如何添加数据?

这是我正在使用的:

static void Main(string[] args)
{
    String filePath = @"C:/Data.csv";

    var csv = File.ReadLines(filePath)
      .Select((line, index) => index == 0
         ? line + ";ExtID"
         : line + ";" + line.ToString())
      .ToList();

    File.WriteAllLines(filePath, csv);
}

标签: c#csvmerge

解决方案


如果您有一个简单的csv(不带引号),您可以尝试Linq:添加标题或Split行和其中的Concat 2项目Taken:

  ...

  var csv = File
    .ReadLines(filePath)
    .Select((line, index) => index == 0 
       ? line + ";ExtID"                                     // Extra header
       : line + ";" + string.Concat(line.Split(';').Take(2)) // first two items added
     )
    .ToList();

  File.WriteAllLines(filePath, csv);

推荐阅读