当前位置: 首页 > 工具软件 > NPOI > 使用案例 >

NPOI学习:1概况

洪增
2023-12-01

NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。
下载地址:https://www.nuget.org/packages/NPOI/

简介

使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。 [1]

优势

(一)传统操作Excel遇到的问题:
1、如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。
2、Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123。
3、导出时,如果字段内容以“-”或“=”开头,Excel会把它当成公式进行,会报错。
4、Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似1.42702E+17格式,日期列变成包含日期和数字的。

Advantage of NPOI

网址:https://github.com/tonyqus/npoi
a. It’s totally free to use
b. Cover most features of Excel (cell style, data format, formula and so on)
c. Professional support service (even 247) from NPOI team (not free)
d. Supported formats: xls, xlsx, docx.
e. Designed to be interface-oriented (take a look at NPOI.SS namespace)
f. Support not only export but also import
g. .Net 2.0 based even for xlsx and docx (though we also support .NET 4.0)
h. Real successful cases all over the world
i. huge amout of basic examples
(二)使用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基础类库,提供了很多实用功能,可用于其他读写文件格式项目的开发

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 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
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日
huseyin2008年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许可。

参考资料

  1. .NET版的POI NPOI .开源社区网[引用日期2012-08-18]
  2. 百度百科。
 类似资料: