學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 工具軟件 > 辦公軟件學(xué)習(xí) > Excel教程 > Excel表格 > 怎么將ASP.NET導(dǎo)出Excel表格

怎么將ASP.NET導(dǎo)出Excel表格

時(shí)間: 張偉670 分享

怎么將ASP.NET導(dǎo)出Excel表格

  之前一直想研究ASP.NET導(dǎo)出Excel表格來著,但一直沒有時(shí)間,這幾天因?yàn)橐粋€(gè)項(xiàng)目的需要,所以就鉆研了一下。

  小面小編告訴你怎么將ASP.NET導(dǎo)出Excel表格:

  1.在DownStudent.aspx頁面上添加一個(gè)Label標(biāo)簽用來顯示“請(qǐng)選擇要查看數(shù)據(jù)的條件”靜態(tài)文本;

  2.在該頁面上添加DropDownList控件用來控制顯示數(shù)據(jù)以及輸出數(shù)據(jù)的條件,綁定DropDownList1_SelectedIndexChanged函數(shù);

  3.在該頁面上添加GridView控件來顯示由DropDownList控件指定條件的數(shù)據(jù);

  4.在該頁面上添加SqlDataSource控件用來連接數(shù)據(jù)庫并將查詢的結(jié)果返給GridView控件;

  5.最后是一個(gè)確認(rèn)按鈕,綁定Button1_Click函數(shù)。

  后臺(tái)代碼實(shí)現(xiàn)(DownStudent.aspx.cs):(具體代碼見附錄)

  后臺(tái)代碼的實(shí)現(xiàn)是導(dǎo)出Excel表格的關(guān)鍵所在,是重中之重。

  1.首先是命名空間的問題,因?yàn)檫@里是導(dǎo)出Excel表格用到了輸入輸出流,所以必須在命名空間里引用IO流(

  using System.IO;),我這里用的是SQLServer數(shù)據(jù)庫,所以還要用到(using System.Data;和using System.Data,Sql;);

  2.實(shí)現(xiàn)DropDownList1_SelectedIndexChanged函數(shù),注意:SelectedIndexChanged方法的實(shí)現(xiàn)必須基于DropDownList1控件的AutoPostBack屬性要設(shè)置為True(否則SelectedIndexChanged方法無效),而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ù)庫連接(方法比較多,有傳統(tǒng)通過SqlConnect獲取的,也有調(diào)用外部類實(shí)現(xiàn)的),然后是一條SQL語句(Select查詢字符串),再者是調(diào)用外部類的方法根據(jù)SQL語句生成一個(gè)DataSet結(jié)果集對(duì)象(把SQL語句查詢到的值放入DataSet里,方便下一次使用,而不是再去訪問一次數(shù)據(jù)庫),最后,調(diào)用CreateExcel函數(shù),注意參數(shù);

  4.實(shí)現(xiàn)CreateExcel函數(shù)(就是對(duì)生成的DataSet的進(jìn)一步操作了);

  其他引用文件說明:

  在App_Code文件夾里主要有3個(gè)外部類,QueryString.cs文件這里不是重點(diǎn),故跳過。1.ExcelExporter.cs文件主要是實(shí)現(xiàn)了CreateExcel函數(shù)中調(diào)用的類,是用來生成Excel文件的,涉及excelXML文件流,只需要會(huì)調(diào)用該類對(duì)DataSet進(jìn)行處理即可,具體生成Excel表格工作交由它處理;2.SqlData.cs文件主要是封裝了連接數(shù)據(jù)庫SqlConnect對(duì)象的方法,并且實(shí)現(xiàn)了對(duì)SqlCommand命令獲取到的值的操作,實(shí)現(xiàn)了生成DataSet對(duì)象以及DataReader對(duì)象的方法(該文件主要好處是省去了每次在界面.cs文件中都要調(diào)用SqlConnect以及SqlCommand對(duì)象的麻煩);(具體代碼見附錄)

  效果:

  單擊“確認(rèn)導(dǎo)出”按鈕;

  選擇另存為即可;

368524