poi 合并重复单元格以及冻结行列

 在实际开发中,我们经常会遇到Excel的合并重复单元格,如下图所示从左边效果转换成右边的效果。
poi 合并重复单元格以及冻结行列_第1张图片
这里的解决思路是这样的。

先定义一个临时的存储值,然后按照行循环,当第一次循环的时候将第一个实际值赋值给临时变量,让后依次循环,和这个临时的变量值进行对比,当相等的时候给计数器加1,不相等的时候进行合并单元格,并将计数器置为0,然后继续。具体的代码如下:

int cellIndex = 0;
int startRow = 2;
int countIndex = 0;
String nameTemp = "";
XSSFRow row = sheet.createRow(rowIndex);
XSSFCell cellName = row.createCell(cellIndex);
cellName.setCellStyle(mergStyle);
String userName = user.getUserName();
cellName.setCellValue(userName);
if("".equals(nameTemp)){
	nameTemp = userName;
}else{
if(userName.equals(nameTemp)){
countIndex ++;
}else{
sheet.addMergedRegion(new CellRangeAddress(startRow, startRow+countIndex, 0, 0));
//开始位置改变到下一行
startRow = startRow+countIndex+1;
countIndex = 0;
nameTemp = userName;
}
}

 另外记录下冻结单元格的方法

 

sheet.createFreezePane(1, 2, 1, 2);

这个意思是冻结第一列,冻结顶部2行。。

 

你可能感兴趣的:(Java,SE)