创建Workbook说白了就是创建一个Excel文件,当然在NPOI中更准确的表示是在内存中创建一个Workbook对象流。
本节作为第2章的开篇章节,将做较为详细的讲解,以帮助NPOI的学习者更好的理解NPOI的组成和使用。
NPOI.HSSF 是专门负责Excel BIFF格式的命名空间,供开发者使用的对象主要位于NPOI.HSSF.UserModel 和 NPOI.HSSF.Util命名空间下,下面我们要讲到的Workbook的创建用的就是NPOI.HSSF.UserModel.HSSFWorkbook类,这个类负责创建.xls文档,它实现了NPOI.SS.UserModel.IWorkbook接口。
在开始创建Workbook之前,我们先要在项目中引用一些必要的NPOI assembly,新版NPOI简化为2个DLL,如下所示
NPOI.dll
Ionic.Zip.dll
要创建一个新的xls文件其实很简单,只要我们初始化一个新的HSSFWorkbook实例就行了,如下所示:
1
2
3
|
using
NPOI.HSSF.UserModel;
...
HSSFWorkbook hssfworkbook =
new
HSSFWorkbook();
|
当然你也可以直接使用新的SS接口,如下所示:
1
2
3
4
|
using
NPOI.SS.UserModel;
using
NPOI.HSSF.UserModel;
...
IWorkbook hssfworkbook =
new
HSSFWorkbook();
|
这两种方法的创建HSSFWorkbook的结果是完全一样的。
这么创建有一些限制,这样创建出来的Workbook在Excel中打开是会报错的,因为Excel规定一个Workbook必须至少带1个Sheet,这也是为什么在Excel界面中,新建一个Workbook默认都会新建3个Sheet。所以必须加入下面的创建Sheet的代码才能保证生成的文件正常:
1
|
ISheet sheet = hssfworkbook.CreateSheet(
"new sheet"
);
|
如果要创建标准的Excel文件,即拥有3个Sheet,可以用下面的代码:
1
2
3
|
hssfworkbook.CreateSheet(
"Sheet1"
);
hssfworkbook.CreateSheet(
"Sheet2"
);
hssfworkbook.CreateSheet(
"Sheet3"
);
|
最后就是把这个HSSFWorkbook实例写入文件了,如下所示:
1
2
3
|
FileStream file =
new
FileStream(
@"test.xls"
, FileMode.Create);
hssfworkbook.Write(file);
file.Close();
|