ASP.NET2.0中Gridview中的内容导出到Excel

原创 2007年09月28日 11:34:00
在日常工作中,经常要将gridview中的内容导出到excel报表中去,在ASP.NET 2.0中,同样可以很方便地实现将整个gridview中的内容导出到excel报表中去,下面介绍其具体做法:
  首先,建立基本的页面default.aspx

<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
<br/>
<asp:Button ID="BtnExport" runat="server" OnClick="BtnExport_Click"
Text="Export to Excel" />
</form>

  在default.aspx.cs中,写入如下代码:

protected void Page_Load(object sender, EventArgs e)
{
 if (!Page.IsPostBack)
 {
  BindData();
 }
}
private void BindData()
{
 string query = "SELECT * FROM customers";
 SqlConnection myConnection = new SqlConnection(ConnectionString);
 SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
 DataSet ds = new DataSet();
 ad.Fill(ds, "customers");
 GridView1.DataSource = ds;
 GridView1.DataBind();
}

public override void VerifyRenderingInServerForm(Control control)
{
 // Confirms that an HtmlForm control is rendered for
}

protected void Button1_Click(object sender, EventArgs e)
{
 Response.Clear();
 Response.AddHeader("content-disposition","attachment;filename=FileName.xls");
 Response.Charset = "gb2312";
 Response.ContentType = "application/vnd.xls";
 System.IO.StringWriter stringWrite = new System.IO.StringWriter();
 System.Web.UI.HtmlTextWriter htmlWrite =new HtmlTextWriter(stringWrite);

 GridView1.AllowPaging = false;
 BindData();
 GridView1.RenderControl(htmlWrite);

 Response.Write(stringWrite.ToString());
 Response.End();
 GridView1.AllowPaging = true;
 BindData();
}
protected void paging(object sender,GridViewPageEventArgs e)
{
 GridView1.PageIndex = e.NewPageIndex;
 BindData();
}

  在上面的代码中,我们首先将gridview绑定到指定的数据源中,然后在button1的按钮(用来做导出到EXCEL的)的事件中,写入相关的代码。这里使用Response.AddHeader("content-disposition","attachment;filename=exporttoexcel.xls");中的filename来指定将要导出的excel的文件名,这里是exporttoexcel.xls。要注意的是,由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,然后通过页面流的方式导出当前页的gridview到excel中,最后再重新设置其allowpaging属性。另外要注意的是,要写一个空的VerifyRenderingInServerForm方法(必须写),以确认在运行时为指定的ASP.NET 服务器控件呈现HtmlForm 控件。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Oracle中Using用法

1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外...

SQL Server面试题

SQL Server面试题 1、数据表 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 ...

C# .NET常问的面试题

一 C# .NET技术 1、ASP.NET MVC如何控制权限? 2、C#.NET中的CTS、CLS和CLR? 3、什么是多线程,如何创建和如何使用?请写一个多线程单例模式? 4、什么是单例模式? 5...

C#面试题

一、填空题 1、面向对象的语言具有(继承性)、(封装性)、(多态性)。 2、能用foreach遍历访问的对象需要实现(IEnumerable )接口或声明(GetEnumerator())方法的类...

什么工作死亡率最高?什么股票值得持有10年? | 数据周报

一天哪个时段最高效 澳大利亚个人品牌建设和营销专家本.安杰尔公布了自己的一项新发现: 一天里效率最高的时段是你在醒来后的两个小时。 他建议,每天最开始工作...

Java基础知识点总结

注:本文是博主根据自身学习java语言的经历,结合互联网上各论坛、网站对java知识点的总结,所做的一次学习笔记记录。主要记录java编程语言的一些易忽视的基础知识点,以及笔试面试时常被问到的细节。本...

腾讯空间、新浪微博、腾讯微博分享接口

腾讯空间、新浪微博、腾讯微博分享接口。 注意:在网站对接前,请先申请注册好您的QQ登录appid、新浪登录Appkey、腾讯微博appkey。 1、引用JS文件 ...

图像匹配得到精确的旋转角度

当对平面物体进行视觉定位时,往往采用图像模板匹配的方式,然而当目标含有一定角度的旋转时,如何精确估算出旋转角度成了一个难题。下面是博主根据自己的理解所做的一个小的总结,也能算纠结,欢迎高手围观。 1 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)