|
|
@@ -428,6 +428,7 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { |
|
|
|
row = row.getSheet().getRow(row.getRowNum() - rowspan + 1);
|
|
|
|
for (int k = 0; k < rowspan; k++) {
|
|
|
|
int ci = columnIndex;//cell的序号
|
|
|
|
row.setHeight(columns.get(0 * colspan).getHeight());
|
|
|
|
for (int i = 0; i < colspan && i < columns.size(); i++) {
|
|
|
|
boolean isNumber = false;
|
|
|
|
params = columns.get(colspan * k + i);
|
|
|
@@ -461,13 +462,15 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { |
|
|
|
row.getCell(ci).setCellValue(val);
|
|
|
|
}
|
|
|
|
row.getCell(ci).setCellStyle(columns.get(i).getCellStyle());
|
|
|
|
//如果合并单元格,就把这个单元格的样式和之前的保持一致
|
|
|
|
setMergedRegionStyle(row, ci, columns.get(i));
|
|
|
|
//合并对应单元格
|
|
|
|
if ((params.getRowspan() != 1 || params.getColspan() != 1)
|
|
|
|
&& !mergedRegionHelper.isMergedRegion(row.getRowNum() + 1, ci)) {
|
|
|
|
row.getSheet()
|
|
|
|
.addMergedRegion(new CellRangeAddress(row.getRowNum(),
|
|
|
|
row.getRowNum() + params.getRowspan() - 1, i + columnIndex,
|
|
|
|
i + columnIndex + params.getColspan() - 1));
|
|
|
|
row.getRowNum() + params.getRowspan() - 1, ci,
|
|
|
|
ci + params.getColspan() - 1));
|
|
|
|
}
|
|
|
|
ci = ci - i + columns.get(i).getColspan() - 1;
|
|
|
|
}
|
|
|
@@ -476,6 +479,24 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { |
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 设置合并单元格的样式
|
|
|
|
* @param row
|
|
|
|
* @param ci
|
|
|
|
* @param excelForEachParams
|
|
|
|
*/
|
|
|
|
private void setMergedRegionStyle(Row row, int ci, ExcelForEachParams params) {
|
|
|
|
//第一行数据
|
|
|
|
for (int i = 1; i < params.getColspan(); i++) {
|
|
|
|
row.getCell(ci + i).setCellStyle(params.getCellStyle());
|
|
|
|
}
|
|
|
|
for (int i = 1; i < params.getRowspan(); i++) {
|
|
|
|
for (int j = 0; j < params.getColspan(); j++) {
|
|
|
|
row.getCell(ci + j).setCellStyle(params.getCellStyle());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取迭代的数据的值
|
|
|
|
* @param cell
|
|
|
@@ -520,7 +541,6 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { |
|
|
|
//把读取过的cell 置为空
|
|
|
|
cell.setCellValue("");
|
|
|
|
if (cellStringString.contains(END_STR)) {
|
|
|
|
colspan = index - startIndex + 1;
|
|
|
|
columns.add(getExcelTemplateParams(cellStringString.replace(END_STR, EMPTY),
|
|
|
|
cell, mergedRegionHelper));
|
|
|
|
break;
|
|
|
@@ -538,6 +558,10 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { |
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
colspan = 0;
|
|
|
|
for (int i = 0; i < columns.size(); i++) {
|
|
|
|
colspan += columns.get(i).getColspan();
|
|
|
|
}
|
|
|
|
return new Object[] { rowspan, colspan, columns };
|
|
|
|
}
|
|
|
|
|
|
|
|