我尝试从asp.net c#web表单应用程序下载EPPlus.dll
生成的excel文件。但我得到失败 - 网络错误。
应该注意的是,提到的错误只发生在chrome中,并且可以在其他浏览器中成功完成作业。
顺便说一下,这个错误在我的localhost上没有出现,只在主服务器上发生。
如果有人可以解释这个问题的解决方案,那将非常有用。
答案 0 :(得分:16)
当我使用Response.Clear()和Response.Close()时,我遇到了同样的问题,并且必须避免它们查看我的代码,如下所示。
Response.Buffer = true;
Response.ContentType = mimeType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + nameOfFile);
Response.BinaryWrite(bytes);
Response.End();
答案 1 :(得分:7)
试试这个:
using (ExcelPackage p = new ExcelPackage())
{
//Code to fill Excel file with data.
Byte[] bin = p.GetAsByteArray();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", Nombre_Del_Libro + ".xlsx"));
Response.BinaryWrite(bin);
Response.Flush();
Response.End();
}
答案 2 :(得分:1)
我不想使用response.End()因为抛出异常
using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Word;
答案 3 :(得分:0)
我有同样的问题,我用下面的代码解决了,请注意filename = \" Name.xlsx \":
中的引号Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AppendHeader("content-disposition", "attachment; filename=\"Name.xlsx\"");
//Writeout the Content
Response.BinaryWrite(bytes);
答案 4 :(得分:0)
我正在导出字符串变量HTML中的html表代码
遵循为我工作的代码
byte[] myFile = Encoding.ASCII.GetBytes(HTML);
Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Type", "application/excel");
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0};", "BAGrowthReport.xls"));
Response.AddHeader("content-length", myFile.Length.ToString()); //Here is the additional header which is required for Chrome.
Response.BinaryWrite(myFile);
Response.Flush();
Response.Close();