關於ASP.NET導出Excel表格的我的總結概括

      以前一直想研究ASP.NET導出Excel表格來着,但一直沒有時間,這幾天由於一個項目的須要,因此就鑽研了一下。有百度,但網上各各大神的帖子幾乎同樣,都是二話不說直接給出函數內容的,至於函數名,參數,返回值以及要使用到的頭文件,以及該把那些函數放在哪裏的說明都沒有列出,因此搞定這個技術點仍是花費了我很長的時間。下面我就用圖文的方式給你們仔細介紹講解一下怎樣用ASP.NET導出Excel的步驟以及具體作法,作的很差請輕噴。 數據庫

       由於時間倉促,因此我只研究了用外部類藉助DataSet(結果集)導出Excel表格的這種比較實用的方法。(其餘方法之後會陸續發表) 函數

       

      界面準備(DownStudent.aspx):(具體代碼見附錄) spa

      

1.在DownStudent.aspx頁面上添加一個Label標籤用來顯示「請選擇要查看數據的條件」靜態文本; excel

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

3.在該頁面上添加GridView控件來顯示由DropDownList控件指定條件的數據; 字符串

4.在該頁面上添加SqlDataSource控件用來鏈接數據庫並將查詢的結果返給GridView控件; 後臺

5.最後是一個確認按鈕,綁定Button1_Click函數。 百度


後臺代碼實現(DownStudent.aspx.cs):(具體代碼見附錄) List

後臺代碼的實現是導出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對象的麻煩);(具體代碼見附錄)  

      效果:

單擊「確認導出」按鈕;          

選擇另存爲便可;

代碼已被我上傳到百度雲盤:http://pan.baidu.com/s/1gdIx08j

相關文章
相關標籤/搜索