GridView导出Excel

protected void btnToExcel_Click(object sender, EventArgs e)
    {
        this.EnableViewState = false;
        gridView.AllowPaging = false;
        BindData();
        Gridview_To_Excel(gridView);
        gridView.AllowPaging = true;
        BindData();
    }
    //这个必须是要写的
    public override void VerifyRenderingInServerForm(Control control) { }

/// <summary>
    /// 传入要导出的Gridview 
    /// </summary>
    /// <param name="objectGridview"></param>
    public static void Gridview_To_Excel(GridView objectGridview)
    {
        //表格外观(前景色、背景色)
        objectGridview.BackColor = System.Drawing.Color.White;
        objectGridview.ForeColor = System.Drawing.Color.Black;
        //表格线
        objectGridview.BorderWidth = 1;
        //数据行外观
        objectGridview.RowStyle.BackColor = System.Drawing.Color.White;
        objectGridview.RowStyle.ForeColor = System.Drawing.Color.Black;
        //数据交替行外观;
        objectGridview.AlternatingRowStyle.BackColor = System.Drawing.Color.White;
        objectGridview.AlternatingRowStyle.ForeColor = System.Drawing.Color.Black;
        //控件外观
        objectGridview.BorderStyle = BorderStyle.Solid;
        objectGridview.BorderWidth = 1;
        //表头标题行外观
        objectGridview.HeaderStyle.BackColor = System.Drawing.Color.White;
        objectGridview.HeaderStyle.ForeColor = System.Drawing.Color.Black;
        objectGridview.Attributes.Add("style", "background:#FFFFFF;color:#FFFFFF;");

        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Buffer = true;
        HttpContext.Current.Response.Charset = "GB2312";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//如果出现了像韩文的情况,那就把这行里的"gb2312"改成"utf-7";

        HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。

        objectGridview.DataBind();
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);

        //由于gridview的内容可能是分页显示的,
        //因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,
        //然后通过页面流的方式导出当前页的gridview到excel中,最后再重新设置其allowpaging属性
        objectGridview.RenderControl(oHtmlTextWriter);
        HttpContext.Current.Response.Output.Write(oStringWriter.ToString());把HTML写回浏览器
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.End();
        objectGridview.DataBind();
    }


转载于:https://my.oschina.net/quifar/blog/840201

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值