EPPLus 不返回文件

EPPLus Not Returning File

EPPLus 没有返回文件。没有构建错误或控制台错误。

网络选项卡显示已完成 200 正常。

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);

     }
}

您不操作输出流,因此您不会得到任何结果。

您可以通过 var stream = new MemoryStream(pack.GetAsByteArray()). As alternative 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)
 }