VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • 单元格合并

作者:Tony Qu
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
image
我们先设置居中和字体样式,这里我们采用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合并为一个单元格,那么就可以用下面的代码:
image
sheet.AddMergedRegion(new Region(2, 2, 4, 4));
提示 即使你没有用CreateRow和CreateCell创建过行或单元格,也完全可以直接创建区域然后把这一区域合并,Excel的区域合并信息是单独存储的,和RowRecord、ColumnInfoRecord不存在直接关系。
 
相关范例请参考NPOI 1.2正式版中的MergedCellInXls项目。
 


相关教程