将网格导出为ex​​cel

时间:2011-11-14 10:33:54

标签: asp.net

我使用这段代码来探索excel的网格。我从网上获得了这段代码。

protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(hw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}

当我使用此代码时,网格数据显示在excel中,但没有垂直和水平线。它将gridview列名称显示为链接而不是普通文本。我没有使用任何主题到gridview并且列是自动生成的。一列说col3包含更多的描述,所以当第二行开始时它的数据显示在顶部,仍然是在cell2中显示的描述。所以我想添加垂直和水平线,因此很容易知道哪些数据属于哪个id。我想格式化col 1,也只是数字格式,小数点为零。

 1 col1    col2              col3
                                     hjhhjhjhjhjhjhjhjhjhjbbv
                                     gfgfgfuiuiuiuiui
    2 9.12E+11   gkjj                etwtrtrwqtrtttwwtretqwfe
                                     dear member
                                      gffgf

    3 565E+11 hghgh

1 个答案:

答案 0 :(得分:0)

在网页加载事件上绑定网格数据,然后尝试再次导出..按照此链接的代码..可能是好的而不是其他...

Exporting GridView Data to Excel

代码段:

private void ExportGridView()
    {
        string attachment = "attachment; filename=Contacts.xls";
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        GridView1.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
    }

注意:还发布了一些评论,其中也有一些信息..

要在将数据导出到Excel时根据网格控件格式化GridView,请按照以下链接:  ASP.Net 2.0: Export GridView to Excel