我尝试使用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
所以有人能告诉我我错过了什么吗?
答案 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;
}