`
zhenping
  • 浏览: 79729 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

POI 单元格垂直居中,相同内容的单元格合并

 
阅读更多
XSSFCellStyle cellStyle = wb.createCellStyle(); 
cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 居中
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//垂直


			int currnetRow = 5;//开始查找的行
			for (int p = 5; p < totalRow; p++) {//totalRow 总行数
				XSSFCell currentCell = sheet.getRow(p).getCell(0);
				String current = getStringCellValue(currentCell);
				log.info(" current = "+current);
				XSSFCell nextCell = null;
				String next = "";
				if(p < totalRow+1){
					XSSFRow nowRow = sheet.getRow(p+1);
					if(nowRow != null){
						nextCell = nowRow.getCell(0);
						next = getStringCellValue(nextCell);
					}else{
						next = "";
					}
					
				}else{
					next = "";
				}
				log.info(" next = "+next);
				if(current.equals(next)){//比对是否相同
					currentCell.setCellValue("");
					continue;
				}
				else{
					sheet.addMergedRegion(new CellRangeAddress(currnetRow, p, 0, 0));//合并单元格
					XSSFCell nowCell = sheet.getRow(currnetRow).getCell(0);
					nowCell.setCellValue(current);
					nowCell.setCellStyle(cellStyle);
					currnetRow = p + 1;
				}
			}
private String getStringCellValue(XSSFCell cell) {
		String strCell = "";
		if (cell != null) {
			switch (cell.getCellType()) {
			case XSSFCell.CELL_TYPE_STRING:
				strCell = cell.getStringCellValue();
				break;
			case XSSFCell.CELL_TYPE_NUMERIC:
				strCell = String.valueOf(cell.getNumericCellValue());
				break;
			case XSSFCell.CELL_TYPE_BOOLEAN:
				strCell = String.valueOf(cell.getBooleanCellValue());
				break;
			case XSSFCell.CELL_TYPE_BLANK:
				strCell = "";
				break;
			default:
				strCell = "";
				break;
			}
			if (strCell.equals("") || strCell == null) {
				return "";
			}
			if (cell == null) {
				return "";
			}
		}
		return strCell;
    }



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics