NPOI

構建在POI 3.x版本上的程序

NPOI是指構建在POI 3.x版本之上的一個程序,NPOI可以在沒有安裝Office的情況下對Word或Excel文檔進行讀寫操作。

NPOI是一個開源的C#讀寫Excel、WORD等微軟OLE2組件文檔的項目。

簡介


使用 NPOI 你就可以在沒有安裝 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、您可以完全免費使用該框架
2、包含了大部分EXCEL的特性(單元格樣式、數據格式、公式等等)
3、專業的技術支持服務(24*7全天候) (非免費)
4、支持處理的文件格式包括xls, xlsx, docx.
5、採用面向介面的設計架構( 可以查看 NPOI.SS 的命名空間)
6、同時支持文件的導入和導出
7、基於.net 2.0 也支持xlsx 和 docx格式(當然也支持.net 4.0)
8、來自全世界大量成功且真實的測試Cases
9、大量的實例代碼
11、你不需要在伺服器上安裝微軟的Office,可以避免版權問題。
12、使用起來比Office PIA的API更加方便,更人性化。
13、你不用去花大力氣維護NPOI,NPOI Team會不斷更新、改善NPOI,絕對省成本。
14、不僅僅對與Excel可以進行操作,對於doc、ppt文件也可以做對應的操作
NPOI之所以強大,並不是因為它支持導出Excel,而是因為它支持導入Excel,並能“理解”OLE2文檔結構,這也是其他一些Excel讀寫庫比較弱的方面。通常,讀入並理解結構遠比導出來得複雜,因為導入你必須假設一切情況都是可能的,而生成你只要保證滿足你自己需求就可以了,如果把導入需求和生成需求比做兩個集合,那麼生成需求通常都是導入需求的子集,這一規律不僅體現在Excel讀寫庫中,也體現在pdf讀寫庫中,目前市面上大部分的pdf庫僅支持生成,不支持導入。

構成


NPOI 1.2.x主要由POIFS、DDF、HPSF、HSSF、SS、Util六部分組成。
NPOI.POIFSOLE2/ActiveX文檔屬性讀寫庫
NPOI.DDFMicrosoft Office Drawing讀寫庫
NPOI.HPSFOLE2/ActiveX文檔讀寫庫
NPOI.HSSFMicrosoft Excel BIFF(Excel 97-2003)格式讀寫庫
NPOI.SSExcel公用介面及Excel公式計算引擎
NPOI.Util基礎類庫,提供了很多實用功能,可用於其他讀寫文件格式項目的開發
表1NPOI組成部分
NPOI 1.x的最新版為NPOI 1.2.5,其中包括了以下功能:
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 2.0主要由SS, HPSF, DDF, HSSF, XWPF, XSSF, OpenXml4Net, OpenXmlFormats組成,具體列表如下:
Assembly名稱模塊/命名空間說明
NPOI.DLLNPOI.POIFSOLE2/ActiveX文檔屬性讀寫庫
NPOI.DLLNPOI.DDF微軟Office Drawing讀寫庫
NPOI.DLLNPOI.HPSFOLE2/ActiveX文檔讀寫庫
NPOI.DLLNPOI.HSSF微軟Excel BIFF(Excel 97-2003, doc)格式讀寫庫
NPOI.DLLNPOI.SSExcel公用介面及Excel公式計算引擎
NPOI.DLLNPOI.Util基礎類庫,提供了很多實用功能,可用於其他讀寫文件格式項目的開發
NPOI.OOXML.DLLNPOI.XSSFExcel 2007(xlsx)格式讀寫庫
NPOI.OOXML.DLLNPOI.XWPFWord 2007(docx)格式讀寫庫
NPOI.OpenXml4Net.DLLNPOI.OpenXml4NetOpenXml底層zip包讀寫庫
NPOI.OpenXmlFormats.DLLNPOI.OpenXmlFormats微軟Office OpenXml對象關係庫

項目近況:


在2013年10月8日,NPOI 2.0 beta 1發布,並已經支持Excel 2007Word 2007
系統要求:
VS2012/VS2010,基於.NET 4.0或者.NET 2.0
VS2005/VS2008,基於.NET 2.0 (SP1)
VS2003,基於.NET 1.1 (僅更新到1.2.1版本,之後不再支持.NET 1.1)
medium trust environment in ASP.NET
NPOI作為國人開發的開源項目,文檔完善,更新及時,為.NET開發者提供了便利,主要用於生成Excel報表,搜索引擎模塊中Excel中的文本提取,批量生成Excel文件,基於Excel文件模板生成新的Excel等多方面。

歷史版本:


NPOI 2.1.1 2014/01/07
NPOI 2.0 RC 2014/01/05
NPOI 2.0 beta 2 2013/12/01
NPOI 1.2.5 2012/05/04
NPOI 1.2.4 2011/11/02
NPOI 1.2.3 2010/11/12
NPOI 1.2.2 2009/12/05
NPOI 1.2.1 2009/09/18
NPOI 1.2 2009/04/12
NPOI 1.1 2009/01/18
NPOI 1.0 2008/10/26

開發團隊


Tony Qu(中國)
加入時間:2008年9月8日
huseyin
加入時間:2008年10月17日
atao.Xiang (中國)
加入時間:2009年10月12日

系統要求


VS2010 with .NET 4.0 runtime
VS2005 or VS2008 with .NET 2.0 Runtime (SP1)
vs2003 with .NET 1.1
Mono
medium trust environment in ASP.NET

許可


NPOI遵循Apache License 2.0許可。