2013-10-21 48 views
0

在我的应用程序中我已经绑定sql数据源到网格视图,单击导出按钮我把数据表中的gridviews数据源并创建webControl表并将该控件写入xls文件。但我正在逐渐follwowing错误:Excel导出不工作与WebControl表

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.

我的代码如下:

HttpResponse Response = HttpContext.Current.Response; 
Response.Clear(); 
string StudNm = Request["hidStudnm"]; 
Response.AddHeader("content-disposition", "attachment;filename=" + "StudentPasswordReport" + ".xls"); 

Response.Charset = ""; 
Response.ContentType = "application/vnd.xls"; 
System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 

System.Web.UI.WebControls.Table tblRept; 
tblRept = CreateTable(exportDt); 
tblRept.RenderControl(htmlWrite); 

请告诉我为什么发生这个错误,我怎么能甲阶酚醛这个错误

回答

0

你可以试试这个

DataTableToExcel(exportDt); 

    private void DataTableToExcel(DataTable dataTable) 
    { 
     StringWriter writer = new StringWriter(); 
     HtmlTextWriter htmlWriter = new HtmlTextWriter(writer); 
     GridView gridView = new GridView(); 
     gridView.DataSource = dataTable; 
     gridView.AutoGenerateColumns = true; 
     gridView.DataBind(); 
     gridView.RenderControl(htmlWriter); 
     htmlWriter.Close(); 

     Response.Clear(); 
     Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); 
     Response.Charset = ""; 
     Response.Write(writer.ToString()); 
     Response.End(); 
} 
相关问题