这里只做工作上的记录
/***
* 合并相同相邻的行
* @param sheet
* @param startRow
* @param endRow
* @param cellNo
*/
private void mergeRow(Sheet sheet, int startRow, int endRow, int cellNo){
if (endRow<startRow){
return;
}
String oldValue = sheet.getRow(startRow).getCell(cellNo).getStringCellValue();
int index = startRow;
for (int i = startRow+1;i<=endRow;i++){
if(sheet.getRow(i).getCell(cellNo)!=null){
String cellValue = sheet.getRow(i).getCell(cellNo).getStringCellValue();
if (oldValue.equals(cellValue)){
if(i==endRow){
sheet.addMergedRegion(new CellRangeAddress(index,endRow,cellNo,cellNo));
}
}else {
if (index != i-1){
sheet.addMergedRegion(new CellRangeAddress(index, i-1, cellNo, cellNo));
oldValue = sheet.getRow(i).getCell(cellNo).getStringCellValue();
index = i;
}else {
oldValue = sheet.getRow(i).getCell(cellNo).getStringCellValue();
index = i;
}
}
}
}
}
这里有一个坑就是相同的数据必须相邻,这样才能合并
网友评论