gridview 分页 导出excel 类
勤快小朱猪 2009-04-01 07:39:46 1.这是我写的一个关于导出excel的类。很简单的,我初学。在GridView没有分页以前,可以导出正常的excel,但是分页以后,关于调用绑定GridView函数在类里面不会调用,不知道如何解决?
using System.IO;
using System.Text;
/// <summary>
/// GridViewToExcel 的摘要说明
/// </summary>
public class GridViewToExcel
{
HttpResponse Response = null;
public GridViewToExcel(HttpResponse response)
{
Response = response;
}
/// <summary>
/// 将GridView里的数据导入到Excel文件中,并另存文档
/// </summary>
/// <param name="FileName">文件名称</param>
/// <param name="GridViewTeacher">要导出数据的GridView</param>
public void Export(string FileName, GridView gridview)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";//导出excel文件
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.RenderControl(hw);
gridview.AllowPaging = false;
Response.Write(tw.ToString());
Response.End();
}
}
2.调用
protected void btnGridViewToExcel_Click(object sender, EventArgs e)
{
GridViewToExcel GridViewOutToExcel = new GridViewToExcel(Response);
GridViewOutToExcel.Export("学生成绩报表123.xls", GridViewTeacher);
}
在调用类的这个页面有一个绑定gridview的函数。
-------------------------------------------------------------------------------
比如:我想下面的函数变成一个类,传入参数gridview和导出excel的名字
protected void toexcel(GridView GridView1)
{
GridView1.AllowPaging = false; //清除分页
GridView1.AllowSorting = false; //清除排序
bind(); //你绑定gridview1数据源的那个函数。
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=dpdgxkh.xls"); //.xls的文件名可修改
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel"; //设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
GridView1.AllowSorting = true; //恢复分页
GridView1.AllowPaging = true; //恢复排序
bind(); //再次绑定
}
不知道bind()函数如何实现???还是不能实现???
我在网上搜了很多,都没有找到相关的帖子!!??
谢谢各位大侠!