EPPLus - 导出到Excel回报失败的网络错误
问题描述:
在我的ASP.NET 1.1的核心应用程序,我使用EPPLus.Core将数据导出到Excel中。但在文件下载的时候,我得到的错误:Failed- network error
EPPLus - 导出到Excel回报失败的网络错误
控制器
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");
}
}
UPDATE:两个Google Chrome and IE 11
发生
- 错误。整个应用程序在本地桌面上。这里没有涉及网络驱动器。
- 错误似乎自另一个动作方法(代码所示here)在同一个控制器被上述相关的代码做向下负载的CSV /文本文件成功。
答
你可以尝试这样的事:
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())
{
...
}
检查这个话题:https://*.com/questions/39617706/failed-network-error-when-downloading-excel-文件提出按epplus-DLL – sQanns
@sQanns我已经检查了第一位。但'VS2015'不能识别在那里接受的答案中提到的以下命令:'Response.ClearHeaders(); Response.ClearContent(); Response.BinaryWrite(BIN); Response.Flush();到Response.End();' – nam