动态列表和 EPPlus LoadFromCollection
List of dynamic and EPPlus LoadFromCollection
我有通过调用 api 获得的动态对象列表。现在,我需要使用
加载它的 EPPlus
List<dynamic> listOfDynamicObjects = Get();
worksheet.Cells.LoadFromCollection(listOfDynamicObjects,...
现在我收到 column out of range
异常。有没有办法加载动态对象?列表来自 Dapper。
更新:我用 DataTable 代替了 List,它起作用了。
从数据库加载的行不是动态的或任意的,它们具有与数据一起返回的非常严格的架构。您可以使用 Dapper 的 ExecuteDataReader
和 EPPlus 的 LoadFromDataReader
而不是通过 dynamic
并丢失类型信息:
using(var con=new SqlConnection(someConnectionString))
using(var reader=con.ExecuteReader(query))
{
sheet.Cells["A1"].LoadFromDataReader(reader);
}
这样您就可以避免两次缓存数据 - 一次在 DataTable 或 List 中,一次在 Excel 包中
我有通过调用 api 获得的动态对象列表。现在,我需要使用
加载它的 EPPlusList<dynamic> listOfDynamicObjects = Get();
worksheet.Cells.LoadFromCollection(listOfDynamicObjects,...
现在我收到 column out of range
异常。有没有办法加载动态对象?列表来自 Dapper。
更新:我用 DataTable 代替了 List,它起作用了。
从数据库加载的行不是动态的或任意的,它们具有与数据一起返回的非常严格的架构。您可以使用 Dapper 的 ExecuteDataReader
和 EPPlus 的 LoadFromDataReader
而不是通过 dynamic
并丢失类型信息:
using(var con=new SqlConnection(someConnectionString))
using(var reader=con.ExecuteReader(query))
{
sheet.Cells["A1"].LoadFromDataReader(reader);
}
这样您就可以避免两次缓存数据 - 一次在 DataTable 或 List 中,一次在 Excel 包中