NPOI用Excel模板导出Excel文件(一)基本操作

最近接触了用c#导出Excel文件的一些操作。

使用NPOI的优势是,开源,操作灵活,不需要下载OFFICE软件,速度快,不过听说,数据量过大的时候,不是很好用,大概那都是几兆的时候吧,不过目前用于我的需要,基本是够了。

关于NPOI的基本操作:http://blog.csdn.net/pan_junbiao/article/details/39717443

使用Npoi需要using几个命名空间:

1     using NPOI;
2     using NPOI.HSSF.UserModel;
3     using NPOI.XSSF.UserModel;
4     using NPOI.XSSF.Util;
5     using NPOI.SS.UserModel;
6     using NPOI.SS.Util;

首先打开文件,需要文件路径,操作模式以及操作权限。

这里打开excel文件有两种对应格式,HSSFWorkbook和XSSFWorkbook,都是继承的IWorkbook。

GetSheet()函数,获取sheet名的方式,获取sheet来操作。

1 FileStream file = new FileStream(FileSer, FileMode.Open, FileAccess.Read);//读入excel模板
2 //HSSF适用2007以前的版本,XSSF适用2007版本及其以上的。
3 XSSFWorkbook UnionBook = new XSSFWorkbook(file);
4 XSSFSheet unionSheet = null;
5 unionSheet = (XSSFSheet)UnionBook.GetSheet("sheet1");

NPOI操作excel的方式,有两个特点:

1.它的操作,都是基于Excel的最小单文单元格来的,而且要先获取行getrow(int rownum),然后再获取该行的单元格,getcell(int cellnum)。

2.它的每次获取时,对行或单元格的操作,基于整个sheet,都是从0开始的。也就是要获取第一行的话,是getrow(0),获取第一个单元格的话,是getcell(0)。

按理说,用了XSSFSheet,应该用XSSFRow和XSSFCell的,不过GetRow方法返回的是IRow,所以只能用IRow定义了,ICell的情况也是一样的。

1 IRow unionRow = unionSheet.GetRow(0);
2 ICell unionCell = unionRow.GetCell(2);
3 unionCell.SetCellValue("第一个值");//设值

下面的函数,用于合并单元格的。

1 //CellRangeAddress四个参数为:起始行,结束行,起始列,结束列
2 unionSheet.AddMergedRegion(new CellRangeAddress(0, 0, 2, 6));

以上就是基本的操作,在下一节,我会针对我所遇到的问题,写出我的解决方案来的。

原文地址:https://www.cnblogs.com/yiji-xing/p/6669918.html