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);
}
}
答案 0 :(得分:2)
您不会操纵输出流,因此您将无法获得结果。
您可以通过执行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)
}