ASP.NETbutton点击下载Excel文件

作为序言,所有这一切都发生在本地内联网上,而这个内联网并不需要连接到互联网。

我有一个数据库运行查询,然后用户按下“下载电子表格”button创build/发送电子表格。 电子表格的创build工作正常,但经过多次尝试后,我无法下载文件。 以下是我所尝试的:

  • 修改Response / Header对象
    • 的TransmitFile
    • WriteFile的
    • BinaryStream
    • redirect
  • Javascriptredirect
    • Response.Write(javascript代码)

在大多数情况下,结果是创build了excel文件,但没有发生redirect/下载。 在Response.Redirect()的情况下,如果它是一个网站,它工作的很好,但是如果是redirect到一个文件:///,那么它会抛出一个线程exception,但没有更多的细节。

我怀疑它与ASP.NET文档的生命周期有关,但是我担心我没有足够的经验来熟悉ASP.NET。

FileInfo file = new FileInfo(PathToExcelFile); if (file.Exists) { Response.Clear(); Response.ClearHeaders(); Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=" + fileName); Response.AddHeader("Content-Type", "application/Excel"); Response.ContentType = "application/vnd.xls"; Response.AddHeader("Content-Length", file.Length.ToString()); Response.WriteFile(file.FullName); Response.End(); } else { Response.Write("This file does not exist."); } 
 ClientScript.RegisterStartupScript(GetType(), "hwa", "window.open('" + System.Configuration.ConfigurationManager.AppSettings["WebSite"].ToString() + "Document/SummaryReport/" + FileName + "','_blank');", true); 

是button点击代码是Excel文件下载。 所以现在很容易使用C#代码下载你的Excel文件。