C# CsvHelper.ValidationException - 为什么?
C# CsvHelper.ValidationException - Why?
我正在尝试在 C# 控制台应用程序中使用 CSVHelper。我有一个例外:
CsvHelper.ValidationException: 'Header matching ['Numer Dokumentu']
names at index 0 was not found.
而且我不知道为什么,因为这个 header 在 csv 文件中他的位置。
这是我的 Program.cs
var packs = new List<Pack>();
using (var streamReader = File.OpenText("C:/.../file.csv"))
{
var reader = new CsvReader(streamReader);
reader.Configuration.RegisterClassMap<PackMap>();
packs = reader.GetRecords<Pack>().ToList();
}
和Pack.cs
public class Pack {
public string NrDoc { get; set; }
public string recipientName { get; set; }
public string recipientAdress { get; set; }
public string recipientCity { get; set; }
public string packValue { get; set; }
public string packInfo { get; set; }
}
和PackMap.cs
sealed class PackMap : ClassMap<Pack>
{
public PackMap()
{
AutoMap();
Map(m => m.NrDoc).Name("Numer Dokumentu");
Map(m => m.recipientName).Name("Kontrahent");
Map(m => m.recipientAdress).Name("Ulica");
Map(m => m.recipientCity).Name("Miasto");
Map(m => m.packValue).Name("Brutto");
Map(m => m.packInfo).Name("Opis");
}
}
在 "PackMap.cs" 中,我尝试使用 Index(0)、Index(1) 等,但没有任何变化。
谁会告诉我我做错了什么?
我必须在 CSV 文件中使用不同的 headers 名称,在 C#
中使用不同的变量
这是我的 csv 文件:
Numer Dokumentu;Status;Data wyst.;Magazyn;Kontrahent;Ulica;Miasto;Netto;Brutto;Opis
FA/3/08/2017/1;;16.08.2017;MAGAZYN;Damianowa Firma;Nowa Lucyna Herc;Lublin;87;20;107;25;Wystawić fakturę. Uwagi klienta: 1
FA/1/10/2017/6;;28.10.2017;MAGAZYN;IBIS Marek Jeż;Jana Pawła II;Szubin;241;00;296;43;Wysyłka
FA/2/10/2017/6;;28.10.2017;MAGAZYN;Netia S.A.;ul. Poleczki 13;Warszawa;782;28;962;20;Wysyłka pobranie
您的文件不是逗号分隔的,因此您需要更改配置以使用 ;
而不是逗号。
reader.Configuration.Delimiter = ";";
我正在尝试在 C# 控制台应用程序中使用 CSVHelper。我有一个例外:
CsvHelper.ValidationException: 'Header matching ['Numer Dokumentu'] names at index 0 was not found.
而且我不知道为什么,因为这个 header 在 csv 文件中他的位置。
这是我的 Program.cs
var packs = new List<Pack>();
using (var streamReader = File.OpenText("C:/.../file.csv"))
{
var reader = new CsvReader(streamReader);
reader.Configuration.RegisterClassMap<PackMap>();
packs = reader.GetRecords<Pack>().ToList();
}
和Pack.cs
public class Pack {
public string NrDoc { get; set; }
public string recipientName { get; set; }
public string recipientAdress { get; set; }
public string recipientCity { get; set; }
public string packValue { get; set; }
public string packInfo { get; set; }
}
和PackMap.cs
sealed class PackMap : ClassMap<Pack>
{
public PackMap()
{
AutoMap();
Map(m => m.NrDoc).Name("Numer Dokumentu");
Map(m => m.recipientName).Name("Kontrahent");
Map(m => m.recipientAdress).Name("Ulica");
Map(m => m.recipientCity).Name("Miasto");
Map(m => m.packValue).Name("Brutto");
Map(m => m.packInfo).Name("Opis");
}
}
在 "PackMap.cs" 中,我尝试使用 Index(0)、Index(1) 等,但没有任何变化。 谁会告诉我我做错了什么? 我必须在 CSV 文件中使用不同的 headers 名称,在 C#
中使用不同的变量这是我的 csv 文件:
Numer Dokumentu;Status;Data wyst.;Magazyn;Kontrahent;Ulica;Miasto;Netto;Brutto;Opis
FA/3/08/2017/1;;16.08.2017;MAGAZYN;Damianowa Firma;Nowa Lucyna Herc;Lublin;87;20;107;25;Wystawić fakturę. Uwagi klienta: 1
FA/1/10/2017/6;;28.10.2017;MAGAZYN;IBIS Marek Jeż;Jana Pawła II;Szubin;241;00;296;43;Wysyłka
FA/2/10/2017/6;;28.10.2017;MAGAZYN;Netia S.A.;ul. Poleczki 13;Warszawa;782;28;962;20;Wysyłka pobranie
您的文件不是逗号分隔的,因此您需要更改配置以使用 ;
而不是逗号。
reader.Configuration.Delimiter = ";";