{属性评估失败.}在vb.net中导出数据到excel时



我使用下面的代码将数据表中的记录导出到使用EPPlus的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

你知道是什么引起的吗?

删除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"

备注:

在本机测试下载文件时不要使用Response.End ();否则会抛出错误。

但添加Response.End ()当在服务器中部署相同的代码并在客户机上测试相同的代码时。在这种情况下不会抛出错误。

消除反应。Charset = " "

最新更新