2

我正在使用以下代码从我的 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 文件。我已经调试过了,路径指向文件的正确位置,所以我不确定是什么导致了问题。任何帮助表示赞赏!

4

2 回答 2

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 垃圾......

于 2013-04-02T13:08:25.043 回答
1

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

于 2015-03-25T12:32:56.910 回答