[NPOI] [Excel] 如何利用NPOI去創建EXCEL圖表

這個題目是針對NPOI創建Excel圖表,但大致上的方法和NPOI不太有關係...哈!
1. 需要可以對Excel做資料的新增刪除動作
    (可使用NPOI,但ADO.NET本身就可以行了?? 但我還沒試過,晚些測試後再PO上! )
2. 需要先利用Excel資料表先架構出一個圖表樣本

需要以上動作完成,就大致成功了。因為目前知道的NPOI 1.2.3是需要借助Excel設定才能產生圖表的。

NPOI是什麼呢?
他是一組函式庫,裡面主要可以用來控制Excel的新增刪除修改以及Excel資料庫和資料表的新增等。
要使用他,記得要先加入他l函式庫參考。

首先,先架設好樣本的Excel:

- 從"公式"的類別底下選擇名稱管理員,將我們打算做圖表的對應資料欄位及資料列作圈選後命名成指定名稱。
- 選擇建立樞紐分析圖。
- 設定指定名稱去做成一個樞紐分析圖。
- 並選擇要將輸出的圖片及表格輸出在新工作表或者已存在的工作表中的哪個位置。

image

- 完成後,可到指定位置看到設定的資料表及圖。但一開始是空的,需要自己去設定。
- 可以拖曳或勾選在欄位清單中的欄位到下列欄位中,造出我們所需要的資料表。

image

- 也可選擇欄位後按右鍵選欄位設定,看是要取平均值,加總,個數等等的計算方式。

image

- 利用NPOI對Excel表格做指定欄位的資料更新。
    - 首先先利用我們剛剛樣本的filestream去創建一個workbook
   1: FileSteam^ fs=gcnew FileStream(“E:\\Template\\TEMP.xls”, FileMode::Open);
   2: HSSFWorkbook^ wb=gcnew HSSFWorkbook(fs);

    - 取得sheet並將資料寫入

   1: Sheet^ sheet=wb->GetSheet(“Sheet3”);
   2: Row^ row=sheet->CreateRow(1);
   3: row->CreateCell(0)->SetCellValue(“A01”);
   4: row->CreateCell(0)->SetCellValue((double) 5000);

    - 將剛剛的資訊寫回某個指定的xls檔案中

   1: FileSteam^ fs1=gcnew FileStream(“test.xls”, FileMode::Open);
   2: wb->Write(fs1);
   3: fs1->Close();


- 完成之後,打開指定Excel檔案可以看到美麗的圖表囉!

image


Note: 若新增或刪除後資料沒更新,要進入樞紐分析表選項中看底下選"檔案開啟時自動更新"選項是否有勾選。若沒勾選會導致資料無法更新。

image



資料參考:

http://msdn.microsoft.com/zh-tw/ee818993

http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html

這個網誌中的熱門文章

[Tips] 設定桌面文字顏色

登入失敗: 使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制

[Win7] 電腦管理-損毀傾印