使用poi導出的execl合并單元格,會出現下圖問題
整個單元格看似合并了,但是文字沒有垂直居中,而且execl中所有的合并都會在第三行開始出現灰色分層樣式
合并單元格偽代碼
String upCompareField = ""; //上一行的對比值
for(int i = 0; i < size; i++){
HSSFRow row = sheet.createRow(i); //sheet為類中全局變量
for(int j = 0; j < length; j++){
HSSFCell cell1 = row.createCell(j);
String compareValue = ...; //每行中的對比值
cell1.setCellValue(setValue);
if(upCompareField.equals(compareValue)){
sheet.addMergedRegion(new CellRangeAddress(i-1,i,j,j));
}else {
upCompareField = compareValue;
}
}
}
我這里這在因為用了反射獲取對象中的值,并與前端傳過來的表頭做對比,所以使用了雙循環,而合并單元格是在雙循環中,并且合并需要上一行的值與下一行值相同就合并。
問題:導出的execl中合并的單元格為什么會出現分層問題?還有我這樣一層層合并單元格會有問題嗎?