C#创建Excel
创建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(); |