NPOI

转载 2013年12月06日 10:14:34

1简介

NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。
使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。[1]

2优势

(一)传统操作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 PIAAPI更加方便,更人性化。
3、你不用去花大力气维护NPOINPOI Team会不断更新、改善NPOI,绝对省成本。
NPOI之所以强大,并不是因为它支持导出Excel,而是因为它支持导入Excel,并能“理解”OLE2文档结构,这也是其他一些Excel读写库比较弱的方面。通常,读入并理解结构远比导出来得复杂,因为导入你必须假设一切情况都是可能的,而生成你只要保证满足你自己需求就可以了,如果把导入需求和生成需求比做两个集合,那么生成需求通常都是导入需求的子集,这一规律不仅体现在Excel读写库中,也体现在pdf读写库中,目前市面上大部分的pdf库仅支持生成,不支持导入。

3构成

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、读写DocummentSummaryInformationSummaryInformation
3、基于LittleEndian的字节读写
4、读写Excel BIFF格式
5、识别并读写Excel BIFF中的常见Record,如RowRecord, StyleRecord, ExtendedFormatRecord
6、支持设置单元格的高、宽、样式等
7、支持调用部分Excel内建函数,比如说sum, countif以及计算符号
8、支持在生成的XLS内嵌入打印设置,比如说横向/纵向打印、缩放、使用的纸张等。

4最新近况:

在2013.10.8日,POI 2.0 beta 1发布,它已经支持Excel 2007 and Word 2007了。
系统要求:
VS2010 with .NET 4.0 runtime
  VS2005 or VS2008 with .NET 2.0 Runtime (SP1)
  VS2003 with .NET 1.1
  medium trust environment in ASP.NET
NPOI作为国人开发的开源项目,文档完善,更新及时,为.NET开发者提供了便利,主要用于生成Excel报表,搜索引擎模块中Excel中的文本提取,批量生成Excel文件,基于Excel文件模板生成新的Excel等多方面。
 
官方博客

NPOI指南

《NPOI指南》目录(草稿) 2014年4月9日Tony Qu没有评论 预计页数:250-350页 出版社:待定   序 初级篇 1. 什么是NP...
  • codepython
  • codepython
  • 2014年08月14日 17:05
  • 2886

【一步一步学NPOI】7.冷知识

1.显示隐藏Excel网格线 sheet1.DisplayGridlines = false;//隐藏网格线(默认true) sheet1.IsPrintGridlines = true;...
  • aa2012123456
  • aa2012123456
  • 2016年02月04日 11:05
  • 913

对于NPOI的一些使用心得(c#)

公司开发用到了NPOI,在开发过程中由于需求的变化,也是遇到各种问题(最最讨厌的就是开发好了改需求了!!!),但是也是这样,才更多的了解了一下NPOI。 当然,这篇文章也只是简单的介绍到本人在开发过...
  • sunjilonggood
  • sunjilonggood
  • 2015年11月04日 09:49
  • 2289

C#中NPOI操作excel之读取和写入excel数据

一、下载引用 下载需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office...
  • coderK2014
  • coderK2014
  • 2015年12月05日 12:59
  • 25704

NPOI2.2.0.0实例详解(十一)—向EXCEL插入图片

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...
  • xxs77ch
  • xxs77ch
  • 2016年01月21日 11:05
  • 2946

C# 用NPOI保存为Excel文件

首先下载NPOI组件,下载地址: 1,官网:http://npoi.codeplex.com/ 2,本地下载:NPOI 2.0 dotnet binary 下载后添加引用(这里有.net2.0版...
  • icemaker88
  • icemaker88
  • 2014年01月20日 13:11
  • 2428

ASP.NET NPOI Excel导入、导出,高级、全面、总结版

正式Excel导入,导入的数据千奇百怪,最重要的是复杂表头的导入。遇到复杂表头的时候,可以用代码先把多余的表头行删除,只留下对应数据库表的那一行即可。代码适用于大量数据的导入,而且处理速度杠杠的,对导...
  • qq285679784
  • qq285679784
  • 2015年04月16日 17:53
  • 4286

【一步一步学NPOI】4.字体与背景

单元格字体设置有一个前提:打开excel文件的客户机有该类字体,否则显示默认字体。 字体类:HSSFFont //字体 HSSFCellStyle styleF = (HSS...
  • aa2012123456
  • aa2012123456
  • 2016年02月03日 14:18
  • 2931

NPOI数据导入导出帮助管理类

NPOI数据导入导出帮助管理类
  • luolian123456
  • luolian123456
  • 2017年06月20日 10:57
  • 336

NPOI2.2.0.0实例详解(三)—设置EXCEL列宽、行高与合并单元格

设置EXCEL列宽、行高与合并单元格
  • xxs77ch
  • xxs77ch
  • 2015年12月08日 11:04
  • 9777
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NPOI
举报原因:
原因补充:

(最多只允许输入30个字)