潸然泪下的小飞飞

导航

NPOI在无Office环境下,对Office文件的操作

在做项目的时候,经常会遇到对 Office的操作,但有时候会没有Office环境,因此给大家介绍一个思路,在没有Office环境下,对Office的处理。

NPOI,顾名思义,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。目前POI的稳定版本中仅支持Excel文件格式xls,其他的都属于不稳定版本(放在poi的scrachpad目录中)。NPOI是构建在POI 3.x版本之上的,本月发布的NPOI 1.2是对应于POI 3.2 final的,所以它支持Excel文件读写,但由于人手和精力原因,还没有实现读写Word, PowerPoint, Visio的文件格式

 NPOI目前主要由以下部分组成 

NPOI.POIFS 

OLE2 Document File System Library  

NPOI.HPSF

OLE2 Propertyset library (包括SummaryInformation和DocumentSummaryInformation) 

NPOI.HSSF

Microsoft Excel BIFF library   

NPOI.Util 

基础类库,提供了很多实用功能,可用于其他读写文件格式项目的开发

NPOI.DDF

 Microsoft Office Drawing format Library 

 

NPOI.SS

Formula Evaluation library 

为什么要用NPOI呢? 

第一点,        你不需要在服务器上安装微软的Office,可以避免版权问题。 

第二点,        使用起来比Office PIA的API更加方便,更人性化。 

第三点,        你不用去花大力气维护NPOI,NPOI Team会不断更新、改善NPOI,绝对省成本。 

第四点,        很多事情是html和cvs法做不到的,比如说公式计算[Cell C1]=A1+B1*A2、单元格高级样式(如文本旋转、对齐、宽度)等,其中公式计算可以适当减轻服务器端的计算压力 

第五点,        你很难保证你的客户机器上都安装了Office 2007或Office Compatiblity Pack for Office 2003,出于向前兼容的考虑,还是生成Office 97-2003格式比较可靠

 

目前NPOI的最新版是NPOI 1.2 beta,其中包括了以下功能: 

a. 读写OLE2文档 

b. 读写DocummentSummaryInformation和SummaryInformation

c. 基于LittleEndian的字节读写 

d. 读写Excel BIFF格式 

e. 识别并读写Excel BIFF中的常见Record如RowRecord, StyleRecord, ExtendedFormatRecord f. 支持设置单元格的高、宽、样式等 g. 支持调用部分Excel内建函数,比如说sum, countif以及计算符号 

h. 支持在生成的Xls内嵌入打印设置,比如说横向/纵向打印、缩放、使用的纸张等 i. ……(功能太多,无法一一例举,大家自己研究吧) 

下载地址:http://npoi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=19001

posted on 2014-03-31 10:27  潸然泪  阅读(2045)  评论(1编辑  收藏  举报