レコード セットを 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 はこのインターネット サイトを開くことができませんでした。要求されたサイトは利用できないか、見つかりません。後でもう一度やり直してください。
エラーを超えて、それをエクスポートして、実際の Excel ファイルのように背景が白で行のない HTML として表示されないようにする方法はありますか?
編集: Anthony の回答に基づいて、コンテンツ タイプが修正されました。
ユーザーの介入なしで毎日複数のファイルを作成できるように、日付はハードコーディングされていません (ユーザーが要求します)。
If Not EOF を削除するように更新しました。接続が長時間続いていることに気づきました。おそらく、このようなタイプの問題がアプリの周りにいくつかあるのでしょう。ヒントをありがとう。また、要求どおりのレコードセットがないにもかかわらず、引き続き機能します。
編集 2 不適切な列名の問題を eof で修正し (おっと!)、本番環境からコンピューターに正しくダウンロードされるようになりました。私は Office 2007 を持っています。しかし、少なくとも 1 台の他のコンピューターにダウンロードできません。この別のコンピュータには Office 2000 がインストールされています。ただし、ヘッダーを削除して、HTML をスピルアウトできるようにすると、すべてのマシンで動作します。
Office 2000 でこのような問題が発生する可能性はありますか?