2017-10-30 14 views
1

C#コンソールアプリケーションでCSVHelperを使用しようとしています。私はこの例外を持っている:C#CsvHelper.ValidationException - なぜですか?

CsvHelper.ValidationException: 'ヘッダ一致[' NUMER Dokumentu ']インデックス0の 名が見つかりませんでした。

なぜこのヘッダーが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" で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"); 
    } 
} 

である私は、インデックスを使用しようとしました(0)、索引(1)などで、変更はありません。 私は何が間違っているのか教えてくれますか?

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 
+1

CSVはコンマ区切りです。あなたのフィールドは ';'で区切られています。あなたは区切り文字をCsvHelperに伝える必要があります – Eris

+0

私はコンマで試しましたが、私は同じexpectionを持っています。しかし、今私はそれを変更...それは動作します! :)私は1つの問題であまりにも長く座っています – Damian

答えて

0

あなたのファイルはコンマで区切られていないので、あなたの代わりに;を使用するように設定を変更する必要があります。 私はこれは私のcsvファイルであるC#でCSVファイルと異なる変数に

を異なるヘッダ名を使用する必要があります。コンマの

reader.Configuration.Delimiter = ";"; 
+0

これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](/レビュー/低品質の投稿/ 17794674) –

+0

これはその答えです。私はもう少し明確なテキストをいくつか追加しました。 –

+0

私はそれが有益な答えであることに同意します。ありがとうございました! – Damian

関連する問題