EPPLus 未返回文件

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)

Chr*_*rdt 5

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

您可以通过执行以下操作来填充您的流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)