2011-10-03 51 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 =“”