我正在尝试将记录集导出到 Excel,但它在生产服务器上似乎一直失败。然而,它似乎在我的开发工作站上运行得很好。我想知道我适合与服务器相关的问题,但我有其他应用程序可以使用相同的确切代码、相似的代码相同的设置很好地导出。
<%@ Language=VBScript %>
<%Response.expires = -1%>
<%response.buffer = true%>
<%
Dim today
today = "_" + Replace(Date,"/","") + "_" + Replace(Time(),":", "")
Response.Charset = "ANSI"
Response.ContentType = "application/octet-stream"
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=List" + today + ".xls"
Response.ContentType = "application/download"
set Cnn = server.CreateObject("ADODB.connection")
Cnn.ConnectionString = Application("Cnn_ConnectionString")
Cnn.open
set rs1 = server.CreateObject("ADODB.Recordset")
SQLCollections = "Sp_MysProc @Param1=" & Session("var1")
rs1.open SQLCollections,cnn
%>
<html>
<body>
<table>
<tr>
<td>Number</td>
<td>Name</td>
</tr>
<%if not rs.eof then
do while not rs.eof %>
<tr>
<td><%=rs("Number") %></td>
<td><%=rs("Name") %></td>
</tr>
<%
rs.MoveNext
Loop
rs.Close
set rs = Nothing
End if
%>
</table>
</body>
</html>
同样,这可以在我的机器上运行。但是当我从生产环境中执行此操作时,它会向我显示以下消息:
Internet Explorer 无法下载
来自 www.mydomain.com 的 MyFile.asp
Internet Explorer 无法打开
这个网站。请求的站点
不可用或不能
成立。请稍后再试。
除了错误之外,还有什么方法可以让它导出而不是显示为具有白色背景且没有线条的 HTML,即像真正的 Excel 文件那样?
Edit:
内容类型已根据安东尼的回答进行了更正。
该日期未进行硬编码,以允许每天创建多个文件,而无需任何用户干预(用户请求)。
我已更新以删除 If Not EOF。我注意到很多长时间运行的连接,也许应用程序存在许多此类问题。谢谢你的提示。尽管没有所要求的记录集,它仍然有效。
Edit 2我已经修复了错误列名的问题(哎呀!),现在它可以从生产环境正确下载到我的计算机上。我有 Office 2007。但至少在另一台计算机上仍然无法下载该内容。这另一台计算机上装有 Office 2000。但是删除标头并允许它溢出 HTML 就可以在所有机器上运行。
Office 2000 可能会遇到此类问题吗?