NPOI

NPOI.POIFSOLE2 NPOI.SSFormula 2、讀寫Docummen

概述

NPOI,是POI的.NET版本。而POI是一套用Java寫成的庫,能夠幫助開發者在沒有安裝微軟Office的情況下讀寫Office 97-2003的檔案,支持的檔案格式包括xls, doc, ppt等。NPOI是構建在POI 3.x版本之上的,它可以在沒有安裝Office的情況下對Word/Excel文檔進行讀寫操作。

優勢

(一)傳統操作Excel遇到的問題:
1、如果是.NET,需要在伺服器端裝Office,且及時更新它,以防漏洞,還需要設定許可權允許.NET訪問COM+,如果在導出過程中出問題可能導致伺服器宕機。
2、Excel會把只包含數字的列進行類型轉換,本來是文本型的,Excel會將其轉成數值型的,比如編號000123會變成123。
3、導出時,如果欄位內容以“-”或“=”開頭,Excel會把它當成公式進行,會報錯。
4、Excel會根據Excel檔案前8行分析數據類型,如果正好你前8行某一列只是數字,那它會認為該列為數值型,自動將該列轉變成類似1.42702E+17格式,日期列變成包含日期和數字的。
(二)使用NPOI的優勢
1、你不需要在伺服器上安裝微軟的Office,可以避免著作權問題。
2、使用起來比Office PIA的API更加方便,更人性化。
3、你不用去花大力氣維護NPOI,NPOI Team會不斷更新、改善NPOI,絕對省成本。
NPOI之所以強大,並不是因為它支持導出Excel,而是因為它支持導入Excel,並能“理解”OLE2文檔結構,這也是其他一些Excel讀寫庫比較弱的方面。通常,讀入並理解結構遠比導出來得複雜,因為導入你必須假設一切情況都是可能的,而生成你只要保證滿足你自己需求就可以了,如果把導入需求和生成需求比做兩個集合,那么生成需求通常都是導入需求的子集,這一規律不僅體現在Excel讀寫庫中,也體現在pdf讀寫庫中,目前市面上大部分的pdf庫僅支持生成,不支持導入。

構成

NPOI目前主要由POIFS、ddf、HPSF、HSSF、SS、Util六部分組成。

NPOI.POIFS OLE2 Document File System Library
NPOI.DDF Microsoft Office Drawing format Library
NPOI.HPSF OLE2 Propertyset library
NPOI.HSSF Microsoft Excel BIFF library
NPOI.SS Formula Evaluation library
NPOI.Util 基礎類庫,提供了很多實用功能,可用於其他讀寫檔案格式項目的開發

表1 NPOI組成部分
目前NPOI的最新版是NPOI 1.2.2,其中包括了以下功能:
1、讀寫OLE2文檔
2、讀寫DocummentSummaryInformation和SummaryInformation
3、基於LittleEndian的位元組讀寫
4、讀寫Excel BIFF格式
5、識別並讀寫Excel BIFF中的常見Record,如RowRecord, StyleRecord, ExtendedFormatRecord
6、支持設定單元格的高、寬、樣式等
7、支持調用部分Excel內建函式,比如說sum, countif以及計算符號
8、支持在生成的XLS內嵌入列印設定,比如說橫向/縱向列印、縮放、使用的紙張等。

總結

NPOI作為國人開發的開源項目,文檔完善,更新及時,為.NET開發者提供了便利,主要用於生成Excel報表,搜尋引擎模組中Excel中的文本提取,批量生成Excel檔案,基於Excel檔案模板生成新的Excel等多方面。

相關詞條

相關搜尋

熱門詞條

聯絡我們