日期:2014-05-17  浏览次数:20575 次

DataGrid导出excel怎么设置表头样式?
后台设置样式。
我导出代码如下:
C# code

 DataTable dt = bll.GetPeopleData();
            DataGrid dgExport = new DataGrid();
            dgExport.DataSource = dt;
            dgExport.DataBind();
            dgExport.AllowPaging = false;
           //想给表头设置背景色,怎么设置 ,下面这句代码不好用,将整个行都变了
            dgExport.HeaderStyle.BackColor = Color.Red;
            string FileType = "application/ms-excel";
            string FileName = "record.xls";
            Response.Charset = "big5";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentType = FileType;
            this.EnableViewState = false;
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            dgExport.RenderControl(hw);
            Response.Write(tw.ToString());
            Response.End();


我需要的效果如下

但是dgExport.HeaderStyle.BackColor = Color.Red; 这句代码的效果如图


------解决方案--------------------
rowHeader.BackColor = System.Drawing.ColorTranslator.FromHtml(HeaderBackColor);
------解决方案--------------------
那你可以先定义好一个模板,然后在模板的基础上添加数据,最后SaveAs就可以了,我都是这么搞的,用代码定义样式有点脑乱
------解决方案--------------------
你用的这种方式是流的性质 直接Response写出,控制样式比较扎手