NPOI是指構建在POI 3.x版本之上的一個程式,NPOI可以在沒有安裝Office的情況下對Word或Excel文檔進行讀寫操作。
NPOI是一個開源的C#讀寫Excel、WORD等微軟OLE2組件文檔的項目。
基本介紹
- 中文名:NPOI
- 優勢:傳統操作Excel遇到的問題
- 構成:讀寫OLE2文檔
- 基於:LittleEndian的位元組讀寫
- 歷史版本:NPOI 2.1.1 2014/01/07
簡介,優勢,構成,項目近況:,歷史版本:,開發團隊,系統要求,許可,
簡介
使用 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全天候) (非免費)
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.POIFS | OLE2/ActiveX文檔屬性讀寫庫 |
NPOI.DDF | Microsoft Office Drawing讀寫庫 |
NPOI.HPSF | OLE2/ActiveX文檔讀寫庫 |
NPOI.HSSF | Microsoft Excel BIFF(Excel 97-2003)格式讀寫庫 |
NPOI.SS | Excel公用接口及Excel公式計算引擎 |
NPOI.Util | 基礎類庫,提供了很多實用功能,可用於其他讀寫檔案格式項目的開發 |
表1 NPOI組成部分
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.DLL | NPOI.POIFS | OLE2/ActiveX文檔屬性讀寫庫 |
NPOI.DLL | NPOI.DDF | 微軟Office Drawing讀寫庫 |
NPOI.DLL | NPOI.HPSF | OLE2/ActiveX文檔讀寫庫 |
NPOI.DLL | NPOI.HSSF | 微軟Excel BIFF(Excel 97-2003, doc)格式讀寫庫 |
NPOI.DLL | NPOI.SS | Excel公用接口及Excel公式計算引擎 |
NPOI.DLL | NPOI.Util | 基礎類庫,提供了很多實用功能,可用於其他讀寫檔案格式項目的開發 |
NPOI.OOXML.DLL | NPOI.XSSF | Excel 2007(xlsx)格式讀寫庫 |
NPOI.OOXML.DLL | NPOI.XWPF | Word 2007(docx)格式讀寫庫 |
NPOI.OpenXml4Net.DLL | NPOI.OpenXml4Net | OpenXml底層zip包讀寫庫 |
NPOI.OpenXmlFormats.DLL | NPOI.OpenXmlFormats | 微軟Office OpenXml對象關係庫 |
項目近況:
在2013年10月8日,NPOI 2.0 beta 1發布,並已經支持Excel 2007和Word 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
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
VS2005 or VS2008 with .NET 2.0 Runtime (SP1)
vs2003 with .NET 1.1
Mono
medium trust environment in ASP.NET
medium trust environment in ASP.NET
許可
NPOI遵循Apache License 2.0許可。