注意:我说的是Table控件,不是GridView。
而且由于结构比较复杂,数据是动态生成的。
实际上是由好几个表组合而成的一个Table,我是一个格一个格拼出来的,根本没用到Datasource、Databind什么的。
这个要怎么导出到 Excel 呢??别回以下这段代码,这段代码导出后的Excel是空的。        Response.Clear()
        Response.Buffer = True
        Response.Charset = "GB2312"
        Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls")
        Response.ContentEncoding = System.Text.Encoding.UTF7
        Response.ContentType = "application/ms-excel"
        Dim oStringWriter As System.IO.StringWriter = New System.IO.StringWriter
        Dim oHtmlTextWriter As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(oStringWriter)
        Me.Table1.RenderControl(oHtmlTextWriter)
        Response.Output.Write(oStringWriter.ToString)
        Response.Flush()
        Response.End()

解决方案 »

  1.   

    用你绑定TABLE的数据源导,如dataset、List<T>...
      

  2.   

    用NPOI较方便,不过这样子输出生成的文件很问题
      

  3.   

    再次声明:这是一个由好几张表组合而成的Table,什么意思呢?就是说这个Table的左上角是表1,右上角是表2,中间是表3,等等等等,是不可能有一个统一的Dataset、List、Datasource什么的!
      

  4.   

    function saveCode(obj) { 
              var winname = window.open('', '_blank', 'top=10000'); 
              var strHTML = document.all.tableExcel.innerHTML; 
              winname.document.open('text/html', 'replace'); 
              winname.document.writeln(strHTML); 
              winname.document.execCommand('saveas','','excel.xls'); 
              winname.close(); 

      

  5.   

    QQ群:27102713,可以满足你的需求,你不用设置Excel,直接传入DataSource,在后台显示你想显示的列就可以了,完全动态。