1 回答
TA贡献1853条经验 获得超9个赞
这里的问题在于GenerateReportingExcel方法。
在该方法中,您将返回ExcelPackage在 using 语句中创建的对象。
using (ExcelPackage excel = new ExcelPackage())
{
...
return excel;
}
由于创建的一次性对象using将在您退出块时立即处理,因此在方法之外使用此对象将导致异常,excel.SaveAs(memoryStream)因为excel已被处理。
您必须移动一些代码才能解决此问题。两种潜在的解决方案(取决于您的需求)是:
将excel.SaveAs();调用移入GenerateReportingExcel(),因此它发生在using创建的块中excel
删除using块并手动创建ExcelPackage返回的对象,然后excel.Dispose()在完成后调用ExportReportToExcel()
IE
public static ExcelPackage GenerateReportingExcel(ReportingViewModel)
{
var excel = new ExcelPackage();
...
return excel;
}
然后在 ExportReportToExcel()
try
{
...
excel.SaveAs(memoryStream);
excel.Dispose();
...
}
- 1 回答
- 0 关注
- 258 浏览
添加回答
举报