我正在尝试将记录集导出到 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 无法打开此 Internet 站点。请求的站点不可用或找不到。请稍后再试。
除了错误之外,还有什么方法可以使其导出而不显示为具有白色背景且没有线条的 HTML,即像真正的 Excel 文件一样?
编辑:已根据安东尼的回答更正了内容类型。
该日期没有硬编码以允许每天创建多个文件而无需任何用户干预(用户请求)。
我已更新以删除 If Not EOF。我注意到很多长时间运行的连接,也许应用程序周围存在许多此类问题。谢谢你的提示。而且它仍然可以工作,因为没有按照要求的记录集。
编辑 2 我已经解决了列名不正确的问题(哎呀!),现在它可以从生产中正确下载到我的计算机上。我有 Office 2007。但它仍然无法在至少另一台计算机上下载。这台计算机上装有 Office 2000。但是删除标题并允许它溢出它在所有机器上工作的 HTML。
Office 2000 可能对这类事情有问题吗?