C# 动态和ePlus LoadFromCollection的列表
我有通过调用api得到的动态对象列表。现在,我需要使用EPPlus加载它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(动态对象列表,。。。 现在我发现列超出范围异常。是否有方法加载动态对象?列表来
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
。从数据库返回的行不是真正的动态行,它们带有完整的模式资料