2012年5月3日 星期四

C# 讀寫 Excel 的另類選擇 - NPOI




這是一個不需要靠 OLE DB 或 COM 的方式可以直接讀寫 Excel 的元件,
可以參考這篇【在 Server 端存取 Excel 檔案的利器:NPOI Library】;
的確,當我們想把自動轉入資料的程式放在 Server 端的時候,
通常會遇到的問題就是 Server 沒有安裝 Excel !
這是一個多麼令人尷尬的事情丫!

那 NPOI 是甚麼東西呢?直接擷取網頁這一段來說明:


POI 專案本身是處理 Office 檔案的函式庫,包含 WordExcelPowerPointOutlookVisioPublisher 等檔案,這些檔案都有一個共通的特性,就是它們都是微軟發展的 OLE Compound Document(複合文件),以 OLE Structured Storage(結構化儲存)格式儲存在檔案中,OLE 規範(以及處理 OLE API 呼叫等)對一般的開發人員來說是有相當的難度,因此利用 Excel 本身的物件模型是最容易的一件事。但 POI 專案並沒有使用到 Excel 的任何東西,它直接深入 OLE Compound Document 格式內去存取資料,也可以直接控制到各種儲存格的資訊(顏色,儲存格格式與樣式等),並將它物件導向化,外部開發人員只需要利用 POI 提供的屬性就可以控制 Office 格式的檔案資料。


官網:NPOI
官方教學:NPOI 1.2.4 交程 裡面有蠻多教學的!
另一篇介紹:[C#][NPOI Library] 存取 Excel 檔案利器

然後當我要試的時候,我下載了 NPOI 的 assembly ,
解壓縮的時候我發現一個怪怪的事情?
為甚麼只有 .net 2.0 跟 .net 4.0 的 dll 呢?
因為我用的是 VS2008 ,所以我只能用 .net 2.0 的?


於是乎我又回到他們的網站去查了一下,
很不幸的,在我看了他們的 Road Map 的時候發現,
目前 1.2.4 的版本只支援到 Excel 97-2003 ,
Excel 2007 必須到 NPOI 1.3 才支援!


NPOI 1.3 最快應該是今年年底才會 Release 吧?看來我必須放棄 NPOI 了!
可惜說~~~~我看它還支援蠻多 Excel 的功能,
可以設定公式、也可以直接取得公式的値說!
下一位~~~

沒有留言:

張貼留言