11

我有一个包含两行的 csv 文件,第一行是标题行,其中包括 36 列,由,

第二行是值,它们是由 36 个值分隔的值,

我想读第二行,发现所有人都在谈论csvHelper 包,所以我下载了它,但它没有任何内容dll可以添加到我的项目中。

我的问题是如何包含它以及如何阅读第二行。

我知道我可以使用它来安装它,Install-Package CsvHelper但我不想要这种方式,因为我想在服务器上部署这个应用程序。因此,如果有类似的方法,我会更喜欢add reference

如果我知道如何包含它,阅读第二行就不难了。我会做这样的事情:

  1. 加载 csv 文件
  2. 阅读第一行并忽略它。
  3. 阅读第二行并将其拆分为,.
4

2 回答 2

21

您可以使用TextReader.ReadLine()跳过第一行:

using (TextReader reader = File.OpenText("filename"))
{
    reader.ReadLine();
    // now initialize the CsvReader
    var parser = new CsvReader( reader ); // ...
}
于 2014-07-29T11:26:20.857 回答
14

接受的答案是解决该问题的方法,但是该库具有此常见案例类的一流解决方案,该
CsvConfiguration属性HasHeaderRecord可以设置为true,这将导致库跳过文件中的第一行。

CsvConfiguration configuration = new CsvConfiguration { HasHeaderRecord = true };

using (TextReader sr = new StringReader(fileContent))
{
    CsvReader reader = new CsvReader(sr, configuration);
}

这是文档的片段

获取或设置一个值,该值指示 CSV 文件是否具有标头记录。默认为真。

在新版本的库中更新该类CsvConfiguration刚刚重命名为Configuration

于 2017-01-20T14:16:34.513 回答