Преглед на файлове

修复合并单元格的时候,样式的bug

4.1.3.A
jueyue преди 9 години
родител
ревизия
b3c28a5653
променени са 1 файла, в които са добавени 27 реда и са изтрити 3 реда
  1. +27
    -3
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java

+ 27
- 3
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java Целия файл

@@ -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 };
}


Зареждане…
Отказ
Запис