Browse Source

多次fill空值情况下不覆盖原有的值

OnlyOneVariable为true和false在值都不存在的情况下进行统一逻辑,防止OnlyOneVariable为false时,本次fill中data没有对应值,但重新对其进行convert。对应之前fill的数据自定义converter被覆盖。
pull/3805/head
When-Jay 10 months ago committed by GitHub
parent
commit
f2d36b141a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 7
      easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java

7
easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java

@ -245,11 +245,15 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
createCell(analysisCell, fillConfig, cellWriteHandlerContext, rowWriteHandlerContext);
Cell cell = cellWriteHandlerContext.getCell();
boolean skipAll = true;
for (String variable : analysisCell.getVariableList()) {
cellValueBuild.append(analysisCell.getPrepareDataList().get(index++));
if (!dataKeySet.contains(variable)) {
continue;
}
if (skipAll) {
skipAll = false;
}
Object value = dataMap.get(variable);
ExcelContentProperty excelContentProperty = ClassUtils.declaredExcelContentProperty(dataMap,
writeContext.currentWriteHolder().excelWriteHeadProperty().getHeadClazz(), variable,
@ -279,6 +283,9 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
}
}
}
if (skipAll) {
continue;
}
cellValueBuild.append(analysisCell.getPrepareDataList().get(index));
cell.setCellValue(cellValueBuild.toString());
cellWriteHandlerContext.setCellDataList(cellDataList);

Loading…
Cancel
Save