2012-02-04 16 views
5

Sto cercando di imparare come usare LINQTOExcel per interrogare un file CSV. Seguendo il tutorial sul sito ho adattato il loro esempio di lavorare con i miei dati (nome del file viene passato ad esso tramite un componente OpenDialog):C# - LINQToExcel - Valori nulli

var csv = new ExcelQueryFactory(filename); 
var test = from c in csv.Worksheet<TestData>() 
      select c; 

foreach(var t in test) 
{ 
    Console.WriteLine(t.Contract_Id); 
} 

Ho una classe separata TestData/modello che assomiglia a questo:

class TestData 
{ 
    public string Transaction_Id { get; set; } 

    public string Value_Date { get; set; } 

    public string Transmit_Date { get; set; } 

    public string Transmit_Time { get; set; } 

    public string Contract_Id { get; set; } 

    public string Contract_Amount { get; set; } 

    public string Contract_Rage { get; set; } 

    public string TestAmount { get; set; } 

    public string Employer_Code { get; set; } 

    public string Test_Acceptor { get; set; } 

    public string Institution_Id { get; set; } 
} 

Ma quando eseguo il ciclo, tutti i valori per ogni elemento sono "nulli". Mi manca un passaggio da qualche parte?

Esempio dati CSV:

transaction_id,value_date,transmit_date,transmit_time,contract_no,contract_amount,instalment,test_amount,employer_code,test_acceptor,institution_id 
35454521,20111230,20120102,2:23:12,1442,1714.56,1,285.76,0,643650,a 

risposta

0

Il file CSV ha bisogno di una riga di intestazione che corrisponde ai nomi di proprietà:

Transaction_Id,Value_Date,Transmit_Date,Transmit_Time,Contract_Id,Contract_Amount,Contract_RageTestAmount,Employer_Code,Test_Acceptor,Institution_Id 
35454521,20111230,20120102,2:23:12,1442,1714.56,1,285.76,0,643650 
+0

Grazie mille. Avevo dato per scontato che li avrebbe abbinati per numero di colonna: | – backdesk