2011-10-03 42 views
0

我正在使用下面的代碼將數據表中的記錄導出到使用EPPlus的Excel文件中。{性能評估失敗。}將數據導出到vb.net中的excel時出現

 Dim excelPackage = New ExcelPackage 
     Dim excelWorksheet = excelPackage.Workbook.Worksheets.Add("DemoPage") 
     excelWorksheet.Cells("A1").LoadFromDataTable(dt, True) 

     Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" 
     Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx") 
     Response.BinaryWrite(excelPackage.GetAsByteArray()) 
     Response.End() 

然而,通過代碼塊後,散步,到Response.End在(),我得到一個異常{房產評估失敗。}

更新:
錯誤日誌:

ERROR: System.Threading.ThreadAbortException: Thread was being aborted. 
    at System.Threading.Thread.AbortInternal() 
    at System.Threading.Thread.Abort(Object stateInfo) 
    at System.Web.HttpResponse.End() 
    at Reporting.Page_Load(Object sender, EventArgs e) in C:\Reporting.aspx.vb:line 38 

任何想法可能導致這種情況?

回答

2

卸下線到Response.End()和寫入以下代碼:

HttpContext.Current.Response.Clear() 
Response.ClearHeaders() 
Response.Buffer = True 

Dim excelPackage = New ExcelPackage  
Dim excelWorksheet = excelPackage.Workbook.Worksheets.Add("DemoPage")    

excelWorksheet.Cells("A1").LoadFromDataTable(dt, True)   
Response.ContentType = "application/vnd.openxmlformats- 

officedocument.spreadsheetml.sheet"   
Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx") 
Response.Charset = "" 
Response.BinaryWrite(excelPackage.GetAsByteArray()) 
Response.Flush() 
Response.Close() 
excelPackage.close() or 
excelPackage=nothing or excelPackage.dispose() whichever is fit. 

hope you will not get "Property Evaluation Error" 
0

注:

當下載文件在本地機器進行測試不使用 到Response.End(); 否則可能會引發錯誤。

但添加 Response.End() 當相同的代碼部署在服務器中,並從客戶機測試相同的代碼。 這種情況下沒有錯誤發生。

Remove Response.Charset =「」