2016-09-15 23 views
2

EPPLUSを使ってC#でExcelにリストをエクスポートしようとしていますが、プログラムを実行してもエラーは表示されませんが、Excelを開くと表示されませんオブジェクトとして多くの時間が、リストを持っているように正しいデータ、彼が挙+オブジェクトの名前の名前を入れて: enter image description hereEPPLUSでリストからExcelにエクスポート

オブジェクトのコードを:

class Stock 
     { 
      public string Nif; 
      public string Proveedor; 
      public string Coodigo; 
      public string descripcion; 
      public string Catalogo; 
      public string Estadistico; 
      public decimal StockOn; 

     } 

とTHESリスト(lstStock )がいっぱいです。私はExcelを作成し、loadfromcollectionオプションを使用します:

 System.IO.FileInfo f = new System.IO.FileInfo("D:\\stock_termos.xlsx"); 
      if (f.Exists) f.Delete(); 
      using (ExcelPackage ep = new ExcelPackage(f)) 
      { 
       ExcelWorksheet hoja = ep.Workbook.Worksheets.Add("TOTAL OBSOLETOS"); 
       hoja.Cells[1, 1].Value = "NIF"; ; 
       hoja.Cells[1, 2].Value = "Proveedor"; 
       hoja.Cells[1, 3].Value = "Código"; 
       hoja.Cells[1, 4].Value = "Descripción"; 
       hoja.Cells[1, 5].Value = "Catálogo"; 
       hoja.Cells[1, 6].Value = "Cod.Estadístico"; 
       hoja.Cells[1, 7].Value = "Stock On"; 
       hoja.Cells[2, 1].LoadFromCollection(lstStock); 
      } 

cuestiónは、私はVisualStudioをでaplicationをデバッグするとき、私は、リストが正しく満たされて見ることができるということです。

enter image description here

だから私は、私は、Excelにデータをエクスポートしようとすると、エラーがあると思いますLoadFromCollectionメソッドが、私は何が間違っていることはできません、助けてください。

答えて

3

どのバージョンのEPPlusを使用していますか?現在最新の4.1.0と同じようにエラーが発生しないことに驚いていますので、私は尋ねます。たぶん、古いバージョンはより寛容です。 EpplusだけFieldsMemberInfosを見ていないことを

public ExcelRangeBase LoadFromCollection<T>(IEnumerable<T> Collection, bool PrintHeaders, TableStyles TableStyle, BindingFlags memberFlags, MemberInfo[] Members) 

注意:あなたが最終的にあなたがこれを見ますと呼ばれるLoadFromCollectionの最終過負荷の署名を見ればあなたは、質問に答えることではなく

これはあなたが使用しているオブジェクトです。あなたはこれにStockオブジェクトに変更した場合:

class Stock 
{ 
    public string Nif { get; set; } 
    public string Proveedor { get; set; } 
    public string Coodigo { get; set; } 
    public string descripcion { get; set; } 
    public string Catalogo { get; set; } 
    public string Estadistico { get; set; } 
    public decimal StockOn { get; set; } 
} 

をあなたは結果が表示されるはずです。

+0

ありがとう、あなたは正しいです、なぜ私は{get; set}を置かないのか分かりません、私はいつもそうします。 EPPLUSのversiónは4.0.4.0 – Ion

+0

です@大事なことではありませんが、ときどき私たちに起こります:)。バージョン4.0.4が例外をスローしないことに興味があります。実際には4.1より優れているので、少なくともテストで何かが間違っていることが分かっています。 – Ernie

関連する問題