仅从 csv 读取 headers
Reading only headers from csv
我正在尝试使用 CSVHELPER 从 csv 文件中只读取 headers 但我无法获得 csvhelper 的 GetFieldHeaders()
方法。
我已经从这个 link 中获取了代码: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文件
中读取headers
更新:Headers 在我的 csv 文件中如下所示:
Id,Address,Name,Rank,Degree,Fahrenheit,Celcius,Location,Type,Stats
所以有人能告诉我我缺少什么吗??
我没有尝试使用这个库。但是快速浏览文档带来了这个可能的解决方案:
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
。
请尝试以下代码...希望这对您有所帮助。
var csv = new CsvReader(new StreamReader("YOUR FILE PATH"));
csv.ReadHeader();
var headers = csv.Parser.RawRecord;
注意:headers
将 return 所有 header 放在一起。您需要为每个逗号创建子字符串以分别获得每个 header。
您可以试试这个:
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;
}
其他答案中的所有方法似乎都已在最新版本中删除?
这对我有用:
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;
}
我正在尝试使用 CSVHELPER 从 csv 文件中只读取 headers 但我无法获得 csvhelper 的 GetFieldHeaders()
方法。
我已经从这个 link 中获取了代码: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文件
中读取headers更新:Headers 在我的 csv 文件中如下所示:
Id,Address,Name,Rank,Degree,Fahrenheit,Celcius,Location,Type,Stats
所以有人能告诉我我缺少什么吗??
我没有尝试使用这个库。但是快速浏览文档带来了这个可能的解决方案:
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
。
请尝试以下代码...希望这对您有所帮助。
var csv = new CsvReader(new StreamReader("YOUR FILE PATH"));
csv.ReadHeader();
var headers = csv.Parser.RawRecord;
注意:headers
将 return 所有 header 放在一起。您需要为每个逗号创建子字符串以分别获得每个 header。
您可以试试这个:
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;
}
其他答案中的所有方法似乎都已在最新版本中删除? 这对我有用:
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;
}