从GridView导出数据到Excel

从GridView导出数据到Excel到是非常方便的,不管你以前用什么样的代码来完成从GridView导出数据到Excel,我感觉有必要看看下边这个方法来实现从GridView导数据到Excel。

首先,我们要做的是绑定GridView,当然也可以在导出数据到Excel的时候再绑定。这里单独出来,也是为了方便完全不了解绑定GridView的朋友。获得DataTable数据后绑定GridView如下:

//dtData是DataTable对象
gvList.DataSource = dtData;
gvList.DataBind();
接下来使用下边的方法即可方便的从GridView导出数据到Excel,方法如下:

///
/// 导出GridView数据到Excel
/// /// GridViewID
/// Excel名称
public void ExportToExcel(GridView gv,string strExcelName)
{
//隐藏不需要的
gv.AllowPaging = false;
gv.AllowSorting
= false;
gv.EditIndex
= -1;

//GridView输出html
Response.Clear();
Response.ContentType
= "application/vnd.xls";
Response.AddHeader(
"content-disposition", "attachment;filename=" + strExcelName + ".xls");

//using System.IO;
StringWriter sWriter = new StringWriter();
HtmlTextWriter hWriter
= new HtmlTextWriter(sWriter);
//using System.Web.UI.HtmlControls;
HtmlForm hForm = new HtmlForm();
gv.Parent.Controls.Add(hForm);
hForm.Controls.Add(gv);
hForm.RenderControl(hWriter);

Response.Write(sWriter.ToString());
Response.End();
}
是的,我把它放置在一个单独的方法中了,使用时你只需要传入GridView的ID、要导出的Excel名称就可以了,值得注意的是在Repeater等控件中也可以使用此方法。

  

posted @ 2011-08-03 10:04  naariah  阅读(377)  评论(0编辑  收藏  举报