2014年10月19日 星期日

[鐵人30天]當ASP.NET MVC 遇見 Angular.js MVC 客戶管理系統(23) – NPOI匯出功能

* 本篇目標

將資料庫資料匯出成Excel

* 前言

之前透過Report Viewer可以很方便的將資料匯出成Excel,但實務上如果客戶要求的Excel需要很準確,又很複雜,我通常會用NPOI來處理這些需求,合併儲存格,特殊公式、圖表呈現…這些NPOI都可以使用得到,但依依介紹可能介紹不完....總而言之NPOI可"一個蘿蔔一個坑"的方式針對每個儲存格去做處理。

* NPOI

資料來源我們用之前建好的SP(訂單資料)

a0be2bb416554c74b2ca2e2ce897c359

我們一樣先新增一個Excel樣板,來設計我們要的格式,而第二列首欄,我通常會指定一個資料內容的字型,譬如將這個儲存格設定為微軟正黑體,12點字,並且是有邊框的格子,待會程式就直接讀這個欄位的設定,會比較方便。

148ad76b693d45639a7c40022e3557f2

新增一個Controller,讀取Excel樣板,並取得剛剛設定好的字型樣式

619b3e3f254e400c9a6341eb6502ff7d

迴圈印出所有資料並依序指定給欄位,CurrRow代表目前所在的列數

6574f85c72a74e27be325603fb8b67a1

CreateCell是我自己擴充的Function,將重複性的程式碼抽出來

0ec70aa09a9845f7a2a550743b2954b3

MVC匯出檔案

114eebb28a784da6b8e742d16700a2ce

產生結果

2b49ba82b1044da4aaec52944ad35c70

* 後記

NPOI其他複雜操作,可參考此中文網

 

本系列程式原始碼請至我的Github下載  https://github.com/kyleap

** 如內容有誤請告知,將進行修改,謝謝 **

沒有留言:

張貼留言