學習啦 > 學習電腦 > 工具軟件 > 辦公軟件學習 > Excel教程 > Excel表格 > 怎么將ASP.NET導出Excel表格

怎么將ASP.NET導出Excel表格

時間: 張偉670 分享

怎么將ASP.NET導出Excel表格

  之前一直想研究ASP.NET導出Excel表格來著,但一直沒有時間,這幾天因為一個項目的需要,所以就鉆研了一下。

  小面小編告訴你怎么將ASP.NET導出Excel表格:

  1.在DownStudent.aspx頁面上添加一個Label標簽用來顯示“請選擇要查看數(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.最后是一個確認按鈕,綁定Button1_Click函數(shù)。

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

  后臺代碼的實現(xiàn)是導出Excel表格的關(guān)鍵所在,是重中之重。

  1.首先是命名空間的問題,因為這里是導出Excel表格用到了輸入輸出流,所以必須在命名空間里引用IO流(

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

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

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

  其他引用文件說明:

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

  效果:

  單擊“確認導出”按鈕;

  選擇另存為即可;

368524