当前位置:主页   - 电脑 - 网站开发 - ASP.Net
NPOI 1.2教程 - 2.2.2 单元格合并
来源:网络   作者:   更新时间:2012-08-20
收藏此页】    【字号    】    【打印】    【关闭

  NPOI官方网站:http://npoi.codeplex.com/

  合并单元格在制作表格时很有用,比如说表格的标题就经常是把第一行的单元格合并居中。那么在NPOI中应该如何实现单元格的合并呢?

  为了实现这一功能,NPOI引入了新的概念,即Region,因为合并单元格,其实就是设定一个区域。下面说一下Region类的参数,Region总共有4个参数,如下所示

Region的参数说明
FirstRow区域中第一个单元格的行号
FirstColumn区域中第一个单元格的列号
LastRow区域中最后一个单元格的行号
LastColumn区域中最后一个单元格的列号

  由于单元格的合并都是在表的基础上建立的,所以我们得先建Sheet:

HSSFWorkbook hssfworkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfworkbook.CreateSheet("new sheet");

  接下来我们根据实际场景来做一些演示。

  场景一 标题行的合并

  这种场景是最常见的,比如说我们要建立一张销售情况表,英文叫Sales Report

NPOI 1.2教程 - 2.2.2 单元格合并 

  我们先设置居中和字体样式,这里我们采用20号字体,代码如下:

HSSFRow row = sheet.CreateRow(0);
HSSFCell cell = row.CreateCell(0);
cell.SetCellValue("Sales Report");
HSSFCellStyle style = hssfworkbook.CreateCellStyle();
style.Alignment = HSSFCellStyle.ALIGN_CENTER;
HSSFFont font = hssfworkbook.CreateFont();
font.FontHeight = 20*20;
style.SetFont(font);
cell.CellStyle = style;

  要产生图中的效果,即把A1:F1这6个单元格合并,然后添加合并区域:

sheet.AddMergedRegion(new Region(0, 0, 0, 5));

  场景二 多行合并

  看完场景一,你可不要认为多行合并就需要一行一行做,其实也只需要一行代码,比如说我们要把C3:E5合并为一个单元格,那么就可以用下面的代码:

NPOI 1.2教程 - 2.2.2 单元格合并 

sheet.AddMergedRegion(new Region(2, 2, 4, 4));

  提示 即使你没有用CreateRow和CreateCell创建过行或单元格,也完全可以直接创建区域然后把这一区域合并,Excel的区域合并信息是单独存储的,和RowRecord、ColumnInfoRecord不存在直接关系。

  范例请见changeset 20657中的MergedCellInXls项目,它将包括在NPOI 1.2正式版中。

  系列文章:

NPOI 1.2教程 - 2.1.1 创建Workbook和Sheet

NPOI 1.2教程 - 2.1.2 创建DocumentSummaryInformation和SummaryInformation

NPOI 1.2教程 - 2.1.3 创建单元格

NPOI 1.2教程 - 2.1.4 创建批注

NPOI 1.2教程 - 2.2.1 设置单元格格式

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明