0
我是在ASP.net中生成/發送Excel報告的整個問題的新手。如何生成併發送到客戶端Excel中的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>")
Response.End()在Response.Write()之後使用。 – 2013-02-13 20:45:41
我沒有寫這段代碼,它看起來像Response.End()畢竟不應該使用。它看起來像context.Response.Flush(); context.ApplicationInstance.CompleteRequest();應該在Response.Write()在非錯誤情況下使用。你同意嗎 ? – 2013-02-13 20:56:49
是的,response.end是要避免的 – 2013-02-13 21:06:09