Ray*_*ren 0 c# asp.net-mvc excel epplus
EPPLus 未返回文件。构建或控制台错误没有错误。
网络选项卡显示已完成 200 ok。
public ActionResult DownloadExcel(EntityReportModel erModel, string filename)
{
var dataResponse = iEntityViewService.LoadEntityView(new EntityViewInput
{
SecurityContext = SessionCache.Instance.SecurityContext,
EntityViewName = "Ticket",
Parameters = new Dictionary<string, object> {
{"MinTicketDateTime", "04/26/16"}
}
});
var table = dataResponse.DataSet.Tables[0];
filename = "NGLTICKETS";
MemoryStream stream = new MemoryStream();
using (ExcelPackage pack = new ExcelPackage())
{
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename);
ws.Cells["A1"].LoadFromDataTable(table, true);
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
}
}
Run Code Online (Sandbox Code Playgroud)
您不操作输出流,因此您不会得到任何结果。
您可以通过执行以下操作来填充您的流var stream = new MemoryStream(pack.GetAsByteArray())。作为替代方案pack.SaveAs(stream)。
所以你的代码应该看起来像这样:
using (ExcelPackage pack = new ExcelPackage())
{
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename);
ws.Cells["A1"].LoadFromDataTable(table, true);
var stream = new MemoryStream(pack.GetAsByteArray()); //Get updated stream
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
//or simple return File(excelPackage.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename)
}
Run Code Online (Sandbox Code Playgroud)