C#中導出數據到Excel表格

(作者:郭鑫 撰寫時間:2019年4月23號)
有些數據的使用不可能僅僅限制於本個項目,還需要在外部使用,當需要在外部使用數據時,就要對數據進行提取,其中一個提取的方式就是把數據導出到Excel表格。
JS部分
在JS部分的代碼很少,就是一個詢問提示框然後在回調函數裏寫上一句打開下載的代碼(也就是「window.open()」)就可以完成了。
在這裏插入圖片描述
但是因爲這裏涉及到了多條件查詢,所以要在詢問之前把多條件查詢的條件處理一下,獲取到多條件查詢的條件,判斷是否爲空或者undefined,是就爲其賦值爲0或空(int類型的賦值爲0,string類型的賦值爲空)。並把這些條件拼接到下載的路徑中,如上面的「?AcademeID=" + AcademeID……&StudentDetail=" + StudentDetail」,就是本次多條件查詢的條件拼接到路徑上的內容。
獲取多條件查詢的值:
在這裏插入圖片描述
判斷並賦值:
在這裏插入圖片描述
控制器部分
接收值部分只接收頁面傳遞過控制器部分的多條件查詢的值即可。
開藥也要對症下藥,導出也是同樣的道理,要導出數據首先要知道要導出的數據是什麼,所以,導出數據這個功能在控制器部分第一步就是要對數據進行查詢。
查詢就是查詢數據表格和條件篩選的組合,前面我也寫過多條件查詢的方法,控制器部分步驟是一樣的,只是值的問題,接收值的定義也一樣。不過導出時只要把數據篩選出來就可以了,不用進行其他的操作。
接着就是創建Excel表格了。在創建前要引用一個引用NPOI,不知道的可上網查,或者問我。
創建Excel表格有5個步驟:
1、創建Excel工作簿;2、創建工作表;3、創建表頭行;4、設置表頭;5、爲Excel表格添加數據
前三步沒什麼好說的,除了命名外其他都是是固定寫法。
在這裏插入圖片描述
第四步:設置表頭
根據你的內容確定要創建多少個單元格,並且爲各個單元格命名。
在這裏插入圖片描述
第五步:爲Excel表格添加數據
這裏又分爲兩步,先創建列然後再往列裏添加數據,因爲要導出的數據的條數是變化的,所有要用循環一條一條的往表格裏添加,添加數據是對應表頭的名稱,添加對應的內容。
在這裏插入圖片描述
循環時以數據的條數作爲條件,在創建行時要從第二行開始創建,第一行已經用作表頭了。
接着就要對創建好並賦值的Excel表格進行處理,把Excel表格轉化爲內存流。
1、 聲明一個存放內存流的容器,並把Excel工作簿寫入內存流中
在這裏插入圖片描述
2、輸出之前調用Seek(偏移量,遊標位置) 移動文件讀取指針到指定的位置
在這裏插入圖片描述
最後就是返回到頁面,以文件的形式返回,在返回之前要先給Excel表格命一個名字。
在這裏插入圖片描述
在頁面時,如果執行成功。在各個瀏覽器的顯示不同,在谷歌瀏覽器的顯示如下圖所示
在這裏插入圖片描述