【问题标题】:Change CSV file column name更改 CSV 文件列名
【发布时间】:2013-10-22 14:24:01
【问题描述】:

我有一个 CSV 文件,其中包含四列,即姓名、姓氏、年龄、出生数据

我想将列名称更改为全名。请问这在c#中如何实现?

var reader = new StreamReader(File.OpenRead(@"C:\myCSV.csv"));            

var line = reader.ReadLine();
var values = line.Split(';');

var title = line.Split(',');

Console.WriteLine(title[0]);

if (title.Contains("Name"))
{
    title[0] = "FullName";
}

现在我不知道应该如何继续更改列名

【问题讨论】:

  • 1) 打开文本文件 2) 读取第一行 3) 编辑字符串 4) 写入第一行 5) 写入其余行。你卡在哪一部分了?
  • 您要更改物理文件中的名称吗?您必须提供更多信息,您尝试过什么?向我们展示一些您遇到问题的代码。
  • CSV 文件不知道任何列名,它是一个简单的文本文件,其中填充了任何类型的数据。你可以在第一行写一些你不会作为数据处理的字符串,以便为每一列赋予意义。因此,您可以简单地覆盖第一行,就是这样......
  • 那么你想写一个新的 3 列 csv 文件吗?
  • 不,我只是想把“姓名”改成“全名”

标签: c# csv


【解决方案1】:

如果您尝试创建一个包含 3 列而不是 4 列的新文件,这将是一个起点,但是,您应该使用 csv 解析器。这只是一个演示,向您展示如何合并两列。

string[] lines = System.IO.File.ReadAllLines(@"C:\myCSV.csv");
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\myCSV2.csv"))
    {
        foreach (string line in lines)
        {
            if (line==lines[0])
            {   //Change Header
                file.WriteLine("Fullname,Age,Date of Birth");
            }
            else
            {
                string[] values = line.Split(',');
                file.WriteLine(string.Format("{0} {1},{2},{3}",
                    values[0],values[1],values[2],values[3]));
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 2016-02-04
    • 2017-06-05
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多