【Vegas原创】GridView修改表头,并导出Excel(C#版)

protected void btnExcel_Click(object sender, EventArgs e)
    {
        
//绑定
        bindgrdExcel();
        
//修改多行表头
        ModifygrdHeader();
        
//导出Excel
        toExcelgrdExcel();

    }
    
/// <summary>
    
/// Response方法导出Excel,必须加的代码
    
/// </summary>
    
/// <param name="control"></param>
    public override void VerifyRenderingInServerForm(Control control)
    {
        
// Confirms that an HtmlForm control is rendered for
    }
    
/// <summary>
    
/// 绑定grdExcel
    
/// </summary>
    void bindgrdExcel()
    {
        DataSet ds 
= db.GetDataSet("procUtility_Excel");
        grdExcel.DataSource 
= ds.Tables[0];
        grdExcel.DataBind();
    }
    
/// <summary>
    
/// 导出Excel
    
/// </summary>
    void toExcelgrdExcel()
    {
        Response.Clear();
        Response.Buffer 
= true;
        Response.Charset 
= "GB2312";
        Response.AppendHeader(
"Content-Disposition""attachment;filename=Qty.xls");
        
//如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.ContentType 
= "application/ms-excel";//设置输出文件类型为excel文件。 

        System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter();
        System.Web.UI.Html32TextWriter oHtmlTextWriter 
= new Html32TextWriter(oStringWriter);

        grdExcel.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());
        Response.Flush();
        Response.End();
    }
   
/// <summary>
    
/// 自定义多行表头
   
/// </summary>
    void ModifygrdHeader()
    {
        
try
        {

            
this.grdExcel.HeaderRow.Cells.Clear();
            TableCell cell 
= new TableCell();
            cell.Text 
= "<tr  style='background-color: #006699;font-size: 15px;color: #FFFFFF;padding: 2pt;'><td rowspan='2' style='font-size=15px'>Customer</td><td  rowspan=2  style='font-size=15px'>" +
                         
"Size</td><td rowspan='2'  style='font-size=15px'>TAC Film</td><td rowspan='2'  style='font-size=15px'>搭配性产品</td><td rowspan='2'  style='font-size=15px'>T/B</td><td rowspan='2'  style='font-size=15px'>Absorption Angle</td>" +
                         
"<td rowspan='2'  style='font-size=15px'>Dimension_X</td><td rowspan='2'  style='font-size=15px'>Dimension_Y</td><td rowspan='2'  style='font-size=15px'>经济幅宽</td><td colspan='2'  style='font-size=15px'>1330mm</td><td colspan='2'  style='font-size=15px'>1475mm</td><td colspan='2'  style='font-size=15px'>2000mm</td>" +
                         
"</tr><tr  style='background-color: #006699;font-size: 12px;color: #FFFFFF;padding: 2pt;'><td>片数/M</td><td>利用率</td><td>片数/M</td><td>利用率</td><td>片数/M</td><td>利用率</td>";
 
            
this.grdExcel.HeaderRow.Cells.Add(cell);
        }
        
catch (Exception e)
        {
            
string url = Request.ApplicationPath + "/error.aspx?error=" + e.Message.ToString() + "&strurl=" + Request.Url.ToString() + "&way=gridheader";
            Response.Redirect(url);
        }
    }
原文地址:https://www.cnblogs.com/amadeuslee/p/3744469.html