首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

*动态生成控件导出Excel有关问题。200分*

2011-12-29 
******动态生成控件导出Excel问题。200分******导出Excel时出现如下异常******动态生成控件导出Excel问题。2

******动态生成控件导出Excel问题。200分******
导出Excel时出现如下异常
******动态生成控件导出Excel问题。200分******

如下:
由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

没有将Table中内容全部导出来,只导出一部分,而且这部分还是乱码;
我刚才试了以下,导出正常的好像也会出现这个错误,但是可以将内容导出


我是动态生成的DataTable,然后将DataTAble的内容导出到Excel
导出Excel的代码如下:
       
        ///   <summary>
        ///   导出到Excel
        ///   </summary>
        ///   <param   name= "sender "> </param>
        ///   <param   name= "e "> </param>
        protected   void   Btn_Excel_Click(object   sender,   EventArgs   e)
        {
                try
                {
        //此处是从新画出表格
                        Table_Report.Rows.Clear();
                        ReportTile(Table_Report);
                        ReportContent(Table_Report);

        //以下是导出Excel部分,该部分应该没问题,我其它导出也是用这个代码,没问题
                        Response.Clear();
                        Response.Buffer   =   true;
                        Response.Charset   =   "utf-8 ";
                        Response.AppendHeader( "Content-Disposition ",   "attachment;filename= "   +   System.Web.HttpUtility.UrlEncode( "导出 "   +   System.DateTime.Now.Date.ToString( "yyyyMMddhhmmss "))   +   ".xls ");
                        Response.ContentEncoding   =   System.Text.Encoding.GetEncoding( "utf-8 ");//设置输出流为简体中文

                        Response.ContentType   =   "application/ms-excel ";//设置输出文件类型为excel文件。  
                        this.EnableViewState   =   false;
                        System.Globalization.CultureInfo   myCItrad   =   new   System.Globalization.CultureInfo( "zh-CN ",   true);
                        System.IO.StringWriter   oStringWriter   =   new   System.IO.StringWriter(myCItrad);
                        System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);

                        this.Table_Report.RenderControl(oHtmlTextWriter);
                        Response.Write(oStringWriter.ToString());
                        Response.End();


                }
                catch   (Exception   ex)
                {
                        string   info   =   ex.ToString();
                }

谢谢大家,

[解决办法]
帮顶了,.........
[解决办法]
值得探索,
积极关注~
[解决办法]
还没到境界
[解决办法]
建议使用Response.TransmitFile

[解决办法]
加上Response.FLUSH()
[解决办法]
我在做excel导出时也出现国乱码,后来解决了!这是那段程序的代码,看看有没有什么可借鉴的.
------------------------------------------------ Label planlabel= GridView1.Rows[e.NewSelectedIndex].Cells[0].FindControl( "Label1 ") as Label;
string filename = planlabel.Text.ToString().Trim();
string fn = Server.MapPath( "~\\excel\\ " + filename);//取得完整的文件路径
FileInfo downloadfile = new FileInfo(fn);
string strexten = filename.Substring(filename.LastIndexOf( ". "));
Response.Clear();
Response.ClearHeaders();
this.Response.Buffer = false;
this.Response.AddHeader( "Content-Disposition ", "attachment;filename= " + HttpUtility.UrlEncode(downloadfile.FullName,System.Text.Encoding.UTF8));
this.Response.AddHeader( "Content-Length ", downloadfile.Length.ToString());
switch(strexten)
{
case ".xls ":
this.Response.ContentType = "application/vnd.ms-excel ";
break;
case ".doc ":
this.Response.ContentType = "application/msword ";
break;
default:
break;
}

this.Response.WriteFile(downloadfile.FullName);
this.Response.Flush();
this.Response.End();
[解决办法]
最主要的还是header
[解决办法]
DING
[解决办法]
学习一下

[解决办法]
up
[解决办法]
搞定没
[解决办法]
接分

热点排行