您好,欢迎访问一九零五行业门户网

NPOI 2.0 教程(一):创建新EXCEL文件

npoi很早就出名了,但是一直以为第三方的不可能有微软的效率高,所以一直都用com来处理excel。 直到某天处理一个大量数据的excel,发现npoi生成的数据几乎是1秒内就完成了,比传统方法快了几百倍。 惊喜万分,开始学习npoi的使用,也希望留下一些东西供别人
npoi很早就出名了,但是一直以为第三方的不可能有微软的效率高,所以一直都用com来处理excel。
直到某天处理一个大量数据的excel,发现npoi生成的数据几乎是1秒内就完成了,比传统方法快了几百倍。
惊喜万分,开始学习npoi的使用,也希望留下一些东西供别人学习。
今天带来的是第一篇,用npoi创建一个新的excel文件。
下载地址就不再赘述了。
如果只是简单的处理的话,只需要引用下载压缩包里的
npoi.dll 和 icsharpcode.sharpziplib.dll 
两个文件而已。
好了,开始。
第一步,引用空间

第二步,创建工作簿(workbook)和sheethssfworkbook wk = new hssfworkbook();//创建一个sheetisheet sheet = wk.createsheet(例子);
第三步,创建行和单元格//在第一行创建行irow row = sheet.createrow(0);//在第一行的第一列创建单元格icell cell = row.createcell(0);
在npoi里,irow和icell是表格结构里的基本元素,必须先通过create函数创建后才能使用,不然会报错。
知识点:因为在excel里,在某个位置有没有单元格,和单元格里有没有值,这两个是分开保存的。“是否有单元格”也是需要保存的信息之一,也同样占用文件大小。单元格是一个无形的容器,必须首先有容器,才能往里头存放值。曾经见过一个错误的例子,导出的excel只有一行数据,但是文件大小超过十几mb。就是因为在导出的时候,程序员没有弄清楚单元格和值的区别,以为空单元格不占大小,把65535行的所有格子都创建了,大量的空白行导致文件很大。实际编程中请注意这一点,需要使用的行才创建,需要使用的单元格才创建。接下来我们可以使用这个函数对单元格赋值。
cell.setcellvalue(测试);
值得注意的是,setcellvalue的重载中支持booldatetimedoublestringirichtextstring这几种格式的参数,但是不像excel com一样支持object。所以赋值的时候必须先做好类型转换。
最后,将做好的这个excel保存到硬盘上。
//打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建时不要打开该文件using (filestream fs = file.openwrite(d:\\excel.xls)){ wk.write(fs);//向打开的这个xls文件中写入并保存。}
这样就完成了最基本的创建,写入,保存。不需要释放,不需要安装excel。速度极快,实在很方便。
其它类似信息

推荐信息