只读取csv中的标题

时间:2016-12-27 07:27:49

标签: c# csvhelper

我尝试使用CSVHELPER仅读取csv文件中的标题但我无法获得csvhelper的GetFieldHeaders()方法。

我已从此链接中获取代码:Source

 public static String[] GetHeaders(string filePath)
        {
            using (CsvReader csv = new CsvReader(new StreamReader("data.csv")))
            {
                int fieldCount = csv.FieldCount;

                string[] headers = csv.GetFieldHeaders();//Error:doesnt contains definition
            }
        }

GetFieldHeaders 无效。

注意:我只想读取csv文件中的标题

更新:我的csv文件中的标题如下所示:

Id,Address,Name,Rank,Degree,Fahrenheit,Celcius,Location,Type,Stats

所以有人能告诉我我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

请尝试以下代码...希望这会对您有所帮助。

var csv = new CsvReader(new StreamReader("YOUR FILE PATH"));           
csv.ReadHeader();          
var headers = csv.Parser.RawRecord;

注意:headers将所有标题一起返回..您需要为每个逗号创建子字符串以分别获取每个标头。

答案 1 :(得分:1)

我没有尝试使用这个库。但是文档的快速概述带来了这种可能的解决方案:

public static String[] GetHeaders(string filePath)
    {
        using (CsvReader csv = new CsvReader(new StreamReader("data.csv")))
        {
            csv.Configuration.HasHeaderRecord = true;
            int fieldCount = csv.FieldCount;

            string[] headers = csv.GetFieldHeaders();
        }
    }

*请参阅documentation并搜索header

答案 2 :(得分:0)

你可以试试这个:

public IEnumerable<string> ReadHeaders(string path)
    {
        using (var reader = new StreamReader(path))
        {
            var csv = new CsvReader(reader);
            if (csv.Read())
                return csv.FieldHeaders;
        }
        return null;
    }

答案 3 :(得分:0)

其他答案中的所有方法似乎都已在最新版本中删除? 这对我有用:

using (var fileReader = File.OpenText("data.csv"))
{
    var csv = new CsvReader(fileReader);
    csv.Configuration.HasHeaderRecord = true;
    csv.Read();
    csv.ReadHeader();
    string[] headers = ((CsvFieldReader)((CsvParser)csv.Parser).FieldReader).Context.HeaderRecord;
}