C# 动态和ePlus LoadFromCollection的列表

C# 动态和ePlus LoadFromCollection的列表,c#,excel,dapper,epplus,C#,Excel,Dapper,Epplus,我有通过调用api得到的动态对象列表。现在,我需要使用EPPlus加载它 List<dynamic> listOfDynamicObjects = Get(); worksheet.Cells.LoadFromCollection(listOfDynamicObjects,... List listOfDynamicObjects=Get(); 工作表.Cells.LoadFromCollection(动态对象列表,。。。 现在我发现列超出范围异常。是否有方法加载动态对象?列表来

我有通过调用api得到的动态对象列表。现在,我需要使用EPPlus加载它

List<dynamic> listOfDynamicObjects = Get();
worksheet.Cells.LoadFromCollection(listOfDynamicObjects,...
List listOfDynamicObjects=Get();
工作表.Cells.LoadFromCollection(动态对象列表,。。。
现在我发现
列超出范围
异常。是否有方法加载动态对象?列表来自Dapper


更新:我使用了DataTable而不是List,它起作用了。

从数据库加载的行不是动态的或任意的,它们有一个随数据一起返回的非常严格的模式。您可以使用Dapper的
ExecuteDataReader
和EPPlus的
LoadFromDataReader
而不是通过
动态的
和丢失类型信息:

using(var con=new SqlConnection(someConnectionString))
using(var reader=con.ExecuteReader(query))
{
    sheet.Cells["A1"].LoadFromDataReader(reader);
}

这样可以避免缓存数据两次—一次在DataTable或List中,一次在Excel包中

List来自DB,使用DapperYes第二行。现在,我使用DataTable,它worked@user960567您还可以使用
LoadFromDataReader
。从数据库返回的行不是真正的动态行,它们带有完整的模式资料