怎么将ASP.NET导出Excel表格
之前一直想研究ASP.NET导出Excel表格来着,但一直没有时间,这几天因为一个项目的需要,所以就钻研了一下。
小面小编告诉你###怎么将ASP.NET导出Excel表格:
1.在DownStudent.aspx页面上添加一个Label标签用来显示“请选择要查看数据的条件”静态文本;
2.在该页面上添加DropDownList控件用来控制显示数据以及输出数据的条件,绑定DropDownList1_SelectedIndexChanged函数;
3.在该页面上添加GridView控件来显示由DropDownList控件指定条件的数据;
4.在该页面上添加SqlDataSource控件用来连接数据库并将查询的结果返给GridView控件;
5.最后是一个确认按钮,绑定Button1_Click函数。
后台代码实现(DownStudent.aspx.cs):(具体代码见附录)
后台代码的实现是导出Excel表格的关键所在,是重中之重。
1.首先是命名空间的问题,因为这里是导出Excel表格用到了输入输出流,所以必须在命名空间里引用IO流(
using System.IO;),我这里用的是SQLServer数据库,所以还要用到(using System.Data;和using System.Data,Sql;);
2.实现DropDownList1_SelectedIndexChanged函数,注意:SelectedIndexChanged方法的实现必须基于DropDownList1控件的AutoPostBack属性要设置为True(否则SelectedIndexChanged方法无效),而DropDownList1_SelectedIndexChanged函数主要实现的就是根据DropDownList1控件选定的条件修改SqlDataSource控件的SelectComand的值;
代码示例:SqlDataSource1.SelectCommand = "SELECT [Chufen], [Zhibu], [Zhuanzheng] from bizusers WHERE (bizusers.Zhibu ='" + DropDownList1.SelectedItem.Text + "')";
3.Button1_Click函数是精华所在,该函数实现思想是:先获取一个数据库连接(方法比较多,有传统通过SqlConnect获取的,也有调用外部类实现的),然后是一条SQL语句(Select查询字符串),再者是调用外部类的方法根据SQL语句生成一个DataSet结果集对象(把SQL语句查询到的值放入DataSet里,方便下一次使用,而不是再去访问一次数据库),最后,调用CreateExcel函数,注意参数;
4.实现CreateExcel函数(就是对生成的DataSet的进一步操作了);
其他引用文件说明:
在App_Code文件夹里主要有3个外部类,QueryString.cs文件这里不是重点,故跳过。1.ExcelExporter.cs文件主要是实现了CreateExcel函数中调用的类,是用来生成Excel文件的,涉及excelXML文件流,只需要会调用该类对DataSet进行处理即可,具体生成Excel表格工作交由它处理;2.SqlData.cs文件主要是封装了连接数据库SqlConnect对象的方法,并且实现了对SqlCommand命令获取到的值的操作,实现了生成DataSet对象以及DataReader对象的方法(该文件主要好处是省去了每次在界面.cs文件中都要调用SqlConnect以及SqlCommand对象的麻烦);(具体代码见附录)
效果:
单击“确认导出”按钮;
选择另存为即可;