ASP.netでExcelレポートを生成/送信するという問題全体に不慣れです。
以下のコードは、大量のデータ (大きな Excel レポート) では機能しない場合がありますが、当社以外のユーザーがブラウザから要求した場合に限ります。実行すると常に機能し、サーバーと同じ建物にいます。
クライアントには IE9 と MS Office 2010 があります。クライアントにエラーは発生しません。長い待ち時間の後、クライアントは単にレポートを取得しません。エラーなしでタイムアウトするようです。
クライアントに大きなExcelレポートを提供するために、以下のアプローチに代わるものはありますか?
以下のコードで問題を引き起こす可能性のある何か間違ったことはありますか?
Excel でクライアント側で開くことができるクライアント用のレポートを生成するための最良の=堅牢な方法は何ですか?
Response.ContentType = "application/ms-excel"
Response.AddHeader("Content-Disposition", "attachment; filename=" + ReportName + ".xls")
Response.Write("<table border =1>")
For Each ch As ColumnHeaders In arrCh
If ch.ColumnName <> "" Then
pCh = pCh & "<td><b>" & ch.ColumnName & "</b></td>"
pColCount = pColCount + 1
End If
Next
If pExtraHeader <> "" Then
Response.Write(pExtraHeader)
End If
Response.Write("<tr>" & pCh & "</tr>")
If oSQLDataReader.HasRows Then
Do While oSQLDataReader.Read()
Response.Write("<tr>")
For I = 0 To arrCh.Count - 1
If arrCh(I + 1).columnname <> "" Then
Response.Write("<td>" & strColumnValue & "</td>")
If arrCh.Item(I + 1).isTotal = True Then
arrCh.Item(I + 1).placeholder = CDbl(arrCh.Item(I + 1).placeholder) + CDbl(oSQLDataReader.GetValue(I))
End If
End If
Next
Response.Write("</tr>")
Loop
Dim pTotal As String = ""
For Each ch As ColumnHeaders In arrCh
If ch.ColumnName <> "" Then
pTotal = pTotal & "<td><b>" & strColumnValue & "</b></td>"
End If
Next
Response.Write("<tr>" & pTotal & "</tr>"
End If
Response.Write("</table>")