怎么將ASP.NET導(dǎo)出Excel表格
怎么將ASP.NET導(dǎo)出Excel表格
之前一直想研究ASP.NET導(dǎo)出Excel表格來(lái)著,但一直沒(méi)有時(shí)間,這幾天因?yàn)橐粋€(gè)項(xiàng)目的需要,所以就鉆研了一下。
小面小編告訴你怎么將ASP.NET導(dǎo)出Excel表格:
1.在DownStudent.aspx頁(yè)面上添加一個(gè)Label標(biāo)簽用來(lái)顯示“請(qǐng)選擇要查看數(shù)據(jù)的條件”靜態(tài)文本;
2.在該頁(yè)面上添加DropDownList控件用來(lái)控制顯示數(shù)據(jù)以及輸出數(shù)據(jù)的條件,綁定DropDownList1_SelectedIndexChanged函數(shù);
3.在該頁(yè)面上添加GridView控件來(lái)顯示由DropDownList控件指定條件的數(shù)據(jù);
4.在該頁(yè)面上添加SqlDataSource控件用來(lái)連接數(shù)據(jù)庫(kù)并將查詢(xún)的結(jié)果返給GridView控件;
5.最后是一個(gè)確認(rèn)按鈕,綁定Button1_Click函數(shù)。
后臺(tái)代碼實(shí)現(xiàn)(DownStudent.aspx.cs):(具體代碼見(jiàn)附錄)
后臺(tái)代碼的實(shí)現(xiàn)是導(dǎo)出Excel表格的關(guān)鍵所在,是重中之重。
1.首先是命名空間的問(wèn)題,因?yàn)檫@里是導(dǎo)出Excel表格用到了輸入輸出流,所以必須在命名空間里引用IO流(
using System.IO;),我這里用的是SQLServer數(shù)據(jù)庫(kù),所以還要用到(using System.Data;和using System.Data,Sql;);
2.實(shí)現(xiàn)DropDownList1_SelectedIndexChanged函數(shù),注意:SelectedIndexChanged方法的實(shí)現(xiàn)必須基于DropDownList1控件的AutoPostBack屬性要設(shè)置為T(mén)rue(否則SelectedIndexChanged方法無(wú)效),而DropDownList1_SelectedIndexChanged函數(shù)主要實(shí)現(xiàn)的就是根據(jù)DropDownList1控件選定的條件修改SqlDataSource控件的SelectComand的值;
代碼示例:SqlDataSource1.SelectCommand = "SELECT [Chufen], [Zhibu], [Zhuanzheng] from bizusers WHERE (bizusers.Zhibu ='" + DropDownList1.SelectedItem.Text + "')";
3.Button1_Click函數(shù)是精華所在,該函數(shù)實(shí)現(xiàn)思想是:先獲取一個(gè)數(shù)據(jù)庫(kù)連接(方法比較多,有傳統(tǒng)通過(guò)SqlConnect獲取的,也有調(diào)用外部類(lèi)實(shí)現(xiàn)的),然后是一條SQL語(yǔ)句(Select查詢(xún)字符串),再者是調(diào)用外部類(lèi)的方法根據(jù)SQL語(yǔ)句生成一個(gè)DataSet結(jié)果集對(duì)象(把SQL語(yǔ)句查詢(xún)到的值放入DataSet里,方便下一次使用,而不是再去訪(fǎng)問(wèn)一次數(shù)據(jù)庫(kù)),最后,調(diào)用CreateExcel函數(shù),注意參數(shù);
4.實(shí)現(xiàn)CreateExcel函數(shù)(就是對(duì)生成的DataSet的進(jìn)一步操作了);
其他引用文件說(shuō)明:
在App_Code文件夾里主要有3個(gè)外部類(lèi),QueryString.cs文件這里不是重點(diǎn),故跳過(guò)。1.ExcelExporter.cs文件主要是實(shí)現(xiàn)了CreateExcel函數(shù)中調(diào)用的類(lèi),是用來(lái)生成Excel文件的,涉及excelXML文件流,只需要會(huì)調(diào)用該類(lèi)對(duì)DataSet進(jìn)行處理即可,具體生成Excel表格工作交由它處理;2.SqlData.cs文件主要是封裝了連接數(shù)據(jù)庫(kù)SqlConnect對(duì)象的方法,并且實(shí)現(xiàn)了對(duì)SqlCommand命令獲取到的值的操作,實(shí)現(xiàn)了生成DataSet對(duì)象以及DataReader對(duì)象的方法(該文件主要好處是省去了每次在界面.cs文件中都要調(diào)用SqlConnect以及SqlCommand對(duì)象的麻煩);(具體代碼見(jiàn)附錄)
效果:
單擊“確認(rèn)導(dǎo)出”按鈕;
選擇另存為即可;