EPPLus - 导出到 Excel returns 失败网络错误

EPPLus - export to Excel returns failed-network error

在我的 ASP.NET Core 1.1 应用程序中,我使用 EPPLus.Core 将数据导出到 Excel。但是在下载文件时出现错误:Failed- network error

控制器

public async Task<FileStreamResult> CPT_RC_Excel(int FiscalYear)
{
    var custlist = _Context.Customers.Where(c => c.Region=="NW").ToList();

  MemoryStream ms = new MemoryStream();
  using (ExcelPackage pck = new ExcelPackage(ms))
  {
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Clients");
    ws.Cells["A1"].LoadFromCollection(custlist);

    Response.Clear();
    Response.Headers.Add("content-disposition", "attachment;  filename=TestFile.xlsx");
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    var bytes = pck.GetAsByteArray();
    await Response.Body.WriteAsync(bytes, 0, bytes.Length);
    return File(ms, "application/force-download", "TestFile.xlsx");
  }
}

更新

  1. 两个 Google Chrome and IE 11 都发生错误。整个应用程序都在本地桌面上。这里不涉及网络驱动器。
  2. 错误似乎与上面的代码有关,因为同一控制器中的另一个操作方法(代码显示 )确实成功下载了 csv/text 文件。

您可以尝试这样的操作:

public async Task<ActionResult> CPT_RC_Excel(int FiscalYear)
        {

            var fileContentAsByteArray = [generate your file as a byte array]

            return File(fileContentAsByteArray, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "TestFile.xlsx");

        }

如果这不起作用,则问题出在文件生成上。

尝试删除对 MemoryStream 的引用并使用...

...
using (var excelPackage = new ExcelPackage())
{
...
}