吴金秀
(黄冈职业技术学院,湖北 黄冈 438000)
将GridView中的数据导出到Excel的方法探究
吴金秀
(黄冈职业技术学院,湖北 黄冈 438000)
Asp.net技术中有一组数据绑定控件,每个控件都有独自显示的数据的特点。其中GridView控件的功能很丰富,不仅能以二维的表格显示数据库的数据,还提供了对数据的排序、分页、选择、编辑和删除等功能。在实际中将GridView中的数据导出到Excel表格的应用也很多,本文本主要介绍了用代码的方式给GridView绑定数据以及将数据导出到Excel表格中的过程与方法。
数据库;GridView;导出
GridView控件以表格的形式显示数据,并能对数据的排序、分页、选择、编辑和删除等功能。如果用SqlDataSource作用数据源控件,几乎不用写任何代码就可以完成这些功能。也可以用代码提供数据源。
将GridView控件的列转换成模板,完成用户自定义数据的显示,结合事件模型,可以完成用户自定义的复杂的事件。同时系统还提供了数据显示的“自动套用格式”,系统内置了十几种内部格式,当然用户也可以自定义格式。
GridView控件可以显示数据源中的数据。通过SqlDataSourcer控件提供数据源或者用代码的方式获取数据源,GridView控件可以自动的显示数据源中数据,也可以按用户指定的方式或格式显示数据。
利用SQL Server 2005数据库管理系统完成数据库的新建和数据的录入,用GridView控件进行显示数据,最后将GridView控件中的数据导出到Excel。
2.1新建数据库
新建student数据库,在student数据库中新建stuExam数据表,stuExam数据表包括学生的学号、班级、姓名、语文、数学、英语成绩,并录入几条记录。)
2.2设计页面
在页上添加一个GridView控件和一个Button控件。设置GridView控件的ID为grvStu。设置Button控件Text=“导出到Excel”,ID为btnToExcel。
2.3在web.config配置文件中配置连接字符串
页面要访问数据库,先在web.config配置文件
配置连接字符串。
2.4编写代码
在页面的后台cs文件中编写代码,获取student数据库stuExam表中的数据,并对GridView控件进行绑定。代码如下。
protected void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
GetData();
}
protected void GetData()
{
string strcon=ConfigurationManager.ConnectionStrings[“stu”].ConnectionString;
SqlConnection con=new SqlConnection(strcon);
string sql=“SELECT * FROM[stuExam]”;
SqlDataAdapter da=new SqlDataAdapter(sql,con);
DataSet ds=new System.Data.DataSet();
da.Fill(ds);
grvStu.DataSource=ds.Tables[0].DefaultView;
grvStu.DataBind();
}
2.5数据的编辑
GridView控件按数据表中定义数据字段的顺序显示数据。如果自定义显示的字段,则设置GridView的AutoGenerateColumns=“False”。通过编辑列,将数据列重新绑定。“源”视图代码如下。
给按钮btnToExcel添加单击事件,编写代码实现将数据导出到Excel,并重写Page对象的VerifyRenderingInServerForm方法。
3.1给btnToExcel添加Click事件,并编写事件代码
protected void btnToExcel_Click(object sender,EventArgs e)
{
//清除缓冲流
Response.Clear();
//设置输出流的字符集类型
Response.Charset=“gb2312”;
//是否缓冲后输出
Response.Buffer=true;
//将HTML头添加到输出流
Response.AppendHeader(“Content-Disposition”,“attachment;filename=stuExam.xls”);
//设置输出流的字符集编码格式(UTF-8)
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;
//输出流的MINI类型
Response.ContentType=“application/ms-excel”;
//实例化一个IO流的文本写入对象
System.IO.StringWritersw=new System.IO.StringWriter();
//实例化一个文本输出流
System.Web.UI.HtmlTextWriterhtw=new HtmlTextWriter(sw);
//把当前控件内容放入到文本输出流,准备写入到Excel中
grvStu.RenderControl(htw);
//开始写入
HttpContext.Current.Response.Output.Write(sw.ToString());
//发送内容
HttpContext.Current.Response.Flush();
//发送完毕后,停止response
HttpContext.Current.Response.End();
}
3.2改写VerifyRenderingInServerForm方法
VerifyRenderingInServerForm()中虽然不写任何代码,要一定重写,才能保证数据正确的导出。
public override void VerifyRenderingInServerForm(Control control)
{
//不写任何代码
}
3.3实现导出数据功能
保存页面并运行,单击按钮打开“打开对话框”。即可完成数据的导出功能。
在实际应用中将GridView控件中的数据导出到Excel文件的应用很多。本文介绍了GridView控件的基本使用方法,以及用代码的方式实现数据的绑定,并将数据导出到Excel文件中的方法与详细步骤。
[1]ASP.NET从入门到精通.明日科技清华大学出版社出版时间:2012年9月.
[2]张正礼.ASP.NET 4.0网站开发与项目实战.清华大学出版出版时间:2012-04-01.
[3]Asp.Net编程艺术.武汉厚溥教育科技有限公司,清华大学出版社出版时间:2014年6月.
吴金秀,女,黄冈职业技术学院副教授。
TP311
A
1671-1602(2016)16-00010-02