我使用以下代码从我的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文件。我已经调试过,路径指向文件的正确位置,所以我不确定导致问题的原因。任何帮助表示赞赏!!
答案 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)
我突然开始在我的机器中遇到问题。我在其他机器(网络应用程序)中尝试了该应用程序并且它有效。那时我不得不排除编码问题。我尝试了一百万件事,没有任何效果。我重新启动机器,瞧...它工作了。 相信我,重新启动永远是我的最后选择。