从web文件夹下载后显示aspx页面的Excel文件

时间:2013-04-02 12:46:00

标签: asp.net vb.net

我使用以下代码从我的asp.net/vb.net网站下载excel文件:

Dim msFilePath As String
Dim msFileName As String
msFilePath = Server.MapPath("~/Template.xls")
msFileName = msFilePath
Dim mAttachFileName As String = "Template.xls"
Response.Clear()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment; filename=""" & mAttachFileName & """")
Response.Flush()

excel文件是一个提供列标题的模板,它包含所有内容。当我点击我网站上的下载按钮时,它会提示我使用正确的名称“Template.xls”保存/打开文件。一旦我打开它就会在excel文件中显示aspx页面,而不是应该在文件中的数据,并给我一个错误,说它缺少css文件。我已经调试过,路径指向文件的正确位置,所以我不确定导致问题的原因。任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:1)

我有完全相同的问题,我想告诉你为什么你的不行,但我不是那么聪明。相反,我只会告诉你我使用的代码现在适用于我:

替换

Response.AddHeader("Content-Disposition", "attachment; filename=""" & mAttachFileName & """")
Response.Flush()

Response.AppendHeader("Content-Disposition", "attachment; filename=""" & mAttachFileName & """")
Response.TransmitFile(FilePath)
Response.End()

我知道response.End()已被弃用但没有它我总是得到所有的HTML垃圾......

答案 1 :(得分:1)

我突然开始在我的机器中遇到问题。我在其他机器(网络应用程序)中尝试了该应用程序并且它有效。那时我不得不排除编码问题。我尝试了一百万件事,没有任何效果。我重新启动机器,瞧...它工作了。 相信我,重新启动永远是我的最后选择。