Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用csvHelper读取csv文件中的第二行_C#_Csv_Csvhelper - Fatal编程技术网

C# 如何使用csvHelper读取csv文件中的第二行

C# 如何使用csvHelper读取csv文件中的第二行,c#,csv,csvhelper,C#,Csv,Csvhelper,我有一个csv文件,有两行,第一行是标题行,其中包括36列,由, 第二行是值,它们是36个值,由, 我想读第二行,我发现所有人都在谈论它,所以我下载了它,但它没有任何dll添加到我的项目中 我的问题是如何包含它以及如何阅读第二行 我知道我可以使用install Package CsvHelper安装它,但我不希望这样,因为我想在服务器上部署此应用程序。因此,我希望有一种方法,比如添加引用或其他什么 如果我知道怎么写,读第二行就不难了。 我会这样做: 加载csv文件 阅读第一行并忽略它 阅读第二行

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

第二行是值,它们是36个值,由

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

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


我知道我可以使用
install Package CsvHelper
安装它,但我不希望这样,因为我想在服务器上部署此应用程序。因此,我希望有一种方法,比如
添加引用
或其他什么

如果我知道怎么写,读第二行就不难了。 我会这样做:

  • 加载csv文件
  • 阅读第一行并忽略它
  • 阅读第二行并按
    将其拆分

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

    using (TextReader reader = File.OpenText("filename"))
    {
        reader.ReadLine();
        // now initialize the CsvReader
        var parser = new CsvReader( reader ); // ...
    }
    

    公认的答案是解决该问题的一种方法,但对于这种常见情况,图书馆有一流的解决方案
    CsvConfiguration
    类有一个属性
    HasHeaderRecord
    ,该属性可以设置为
    true
    ,这将导致库跳过文件中的第一行

    CsvConfiguration configuration = new CsvConfiguration { HasHeaderRecord = true };
    
    using (TextReader sr = new StringReader(fileContent))
    {
        CsvReader reader = new CsvReader(sr, configuration);
    }
    
    下面是一段

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


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

    您可以使用
    StreamReader.ReadLine()
    跳过第一行。“我知道我可以使用
    install Package CsvHelper
    安装它,但我不希望这样,因为我想在服务器上部署此应用程序“你到底在说什么?无法将项目部署到使用nuget package manager的服务器?我们几乎每天都这样做。@TimSchmelter我不知道,因为我的c#不好。不过,谢谢你告诉我。另外,我的问题不在于读取csv文件,我的问题在于包含该库,我在Google中搜索了很多,但找不到任何对我有用的东西。
    Install Package
    确实添加了一个参考。还有一些幕后的包裹簿记。您仍然可以部署一个正常的项目。@spender我的意思是,我不想告诉该客户他需要启动此Station
    Instal Package CsvHelper
    。这是一个windows应用程序。因此,我需要拥有服务器bty的客户双击应用程序,然后应用程序运行。我希望你理解我,如果我写了一些非常愚蠢的东西,我很抱歉。我不是一个好的开发者。谢谢你的回答。我有大约200个csv文件。所以,我认为csvHelper有办法把它们都读出来。对吗?@AgnieszkaPolec:我不熟悉那个解析器,所以我已经看过文档了。但我认为这将是有益的。另外,一旦你知道如何解析一个文件,我就不明白解析200个文件的困难。谢谢你的更新,我正在尝试安装这个软件包。然后我将测试您的代码并更新您+1感谢您与我的合作。在您的代码中,您将第一行(即标题)传递给了csv阅读器,对吗?@AgnieszkaPolec:当文档状态为读取并返回下一行时,它会将阅读器推进到下一行。我对那一行什么也不做,因为我只想跳过这一行。然后,我将读取器传递给
    CsvReader
    的构造函数,该构造函数现在将只解析除第一行之外的所有行。如果默认设置为true,为什么设置为true?我很久以前就回答了这个问题,可能在那个时候,它不是默认值。另一方面,问题是明确地询问这一点,这意味着出于某种原因,它不起作用(可能是因为它是该库的旧版本)。最后,对于一个人来说,如何寻找这个问题,这意味着他有问题,他需要解决,这可以帮助他