使用EPPLUS从列表导出到Excel

我试图导出列表到Excel中的EPPLUS,当我执行该程序不给我错误,但是当我打开Excel我看到不是正确的数据,他把名称的projet +该对象的名称与对象具有该列表的次数一样多: 在这里输入图像描述

对象的代码:

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

当列表(lstStock)被填充时,我创build一个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中debugging应用程序,我可以看到列表正确填写:

在这里输入图像说明

所以我认为错误是当我尝试导出数据到Excel,与LoadFromCollection方法,但我不能说什么是错的,请帮助。

你使用的是什么版本的EPPlus? 我问,因为我很惊讶它不会像4.1.0这是当前最新的错误。 也许旧版本更宽容。

但是要回答你的问题,如果你看看最终调用的LoadFromCollection的最终重载的签名,你会看到:

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

请注意,Epplus只查看MemberInfos而不是您所反对的Fields 。 如果您将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; } } 

你应该看到结果。