现在的位置: 首页 > 综合 > 正文

将gridview中的数据导入excel中

2012年07月31日 ⁄ 综合 ⁄ 共 1254字 ⁄ 字号 评论关闭

 将gridview中的数据导入excel中,解决汉字出现乱码的问题。

1、首先编写导出函数Export

public void Export(string FileType,string FileName)
    {
        Response.Charset = "UTF-8";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
        HttpContext.Current.Response.Write("<meta   http-equiv=Content-Type   content=text/html;charset=utf-8>");    //添加改行,消除汉字乱码
        Response.ContentType = FileType;
        this.EnableViewState =false ;
        StringWriter tw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        GridView1.RenderControl(hw);
        Response.Write(tw.ToString());
        Response.End();
    }

2、按钮事件调用该方法

protected void Button1_Click(object sender, EventArgs e)
    {
        Export("application/ms-excel","学生信息表.xls");
    }

3、重写VerifyRenderingInServerForm事件,如果是将datagrid中的数据导入到excel中,就没必要重写该方法。

public override void VerifyRenderingInServerForm(Control control)
    {

      //内容随意,可不写
    }

显示如下图:

如果要格式化输出gridview的内容,可以添加如下方法:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:###岁");  //设置格式
        }
    }

抱歉!评论已关闭.