EPPLus不返回文件

EPPLus没有返回文件。 生成或控制台错误没有错误。

networking选项卡显示完成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); } } 

你不操纵你的输出stream,因此你将不会得到任何结果。

你可以通过做var stream = new MemoryStream(pack.GetAsByteArray())来填充你的stream。 作为替代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) }