我现在只能实现将DataGrid中的数据导出到Excel中,不能将datagrid中的颜色属性写入到Excel中。

解决方案 »

  1.   

    直接将DataGrid变成excel文件就可以了.public void ExportToExcel(System.Web.UI.Control ctl) 
            { 
                bool CurrCtlVisible=ctl.Visible;
                ctl.Visible=true;        Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");  
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.ContentType = "application/ms-excel"; 
                ctl.Page.EnableViewState = false; 
                System.IO.StringWriter tw = new System.IO.StringWriter(); 
                System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw); 
                ctl.RenderControl(hw); 
                Response.Write(tw.ToString()); 
                Response.End(); 
                
                ctl.Page.EnableViewState = true; 
                ctl.Visible=CurrCtlVisible;
            }
      

  2.   

    导出到Excel方法:
    private void OutExcel(DataGrid dg ,string name,string type)
    {   dg.Visible=true;
    Response.Clear(); 
    Response.Buffer= true; 
    Response.Charset="GB2312";
    Response.AppendHeader("Content-Disposition",name);
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
    Response.ContentType = type;
    dg.EnableViewState = false;
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    dg.RenderControl(oHtmlTextWriter); 
    Response.Write(oStringWriter.ToString());
    Response.End();
    }调用:
    private void ToExcel_Click(object sender, System.EventArgs e)
    {
    this.OutExcel(DatagridID,"attachment;filename=文件名","application/ms-excel");
    }
      

  3.   

    我开始也是这么作的,但是这样做有个问题,就是Excel中整行都是DataGrid中的颜色,不论该行中的单元格是否有数据。我想要的是给有数据的单元格填充颜色,没有数据的保持空白,有办法解决吗?