EPPLus - 导出到Excel会返回失败的网络错误

时间:2017-06-02 21:55:14

标签: c# excel asp.net-core epplus

在我的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. 错误似乎与上面的代码有关,因为同一个控制器中的另一个操作方法(显示为here的代码)会成功下载csv / text文件。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

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())
{
...
}