diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java b/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java index 81524223..09f7cde7 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java @@ -98,7 +98,7 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor { if (fillConfig == null) { fillConfig = FillConfig.builder().build(); } - fillConfig.init(); + // fillConfig.init(); Object realData; // The data prefix that is populated this time diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/write/metadata/fill/FillConfig.java b/easyexcel-core/src/main/java/com/alibaba/excel/write/metadata/fill/FillConfig.java index ac5581ee..b4e369c1 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/write/metadata/fill/FillConfig.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/write/metadata/fill/FillConfig.java @@ -21,37 +21,25 @@ import lombok.Setter; @NoArgsConstructor @AllArgsConstructor public class FillConfig { - private WriteDirectionEnum direction; + + @Builder.Default + private WriteDirectionEnum direction = WriteDirectionEnum.VERTICAL; + /** * Create a new row each time you use the list parameter.The default create if necessary. *

* Warnning:If you use forceNewRow set true, will not be able to use asynchronous write file, simply * say the whole file will be stored in memory. */ - private Boolean forceNewRow; + @Builder.Default + private Boolean forceNewRow = Boolean.FALSE; /** * Automatically inherit style * * default true. */ - private Boolean autoStyle; - - private boolean hasInit; + @Builder.Default + private Boolean autoStyle = Boolean.TRUE; - public void init() { - if (hasInit) { - return; - } - if (direction == null) { - direction = WriteDirectionEnum.VERTICAL; - } - if (forceNewRow == null) { - forceNewRow = Boolean.FALSE; - } - if (autoStyle == null) { - autoStyle = Boolean.TRUE; - } - hasInit = true; - } } diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/fill/FillConfigTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/fill/FillConfigTest.java new file mode 100644 index 00000000..f921eb86 --- /dev/null +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/fill/FillConfigTest.java @@ -0,0 +1,49 @@ +package com.alibaba.easyexcel.test.core.fill; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import com.alibaba.excel.enums.WriteDirectionEnum; +import com.alibaba.excel.write.metadata.fill.FillConfig;; + +public class FillConfigTest { + + @Test + void creationByNewTest() { + // Non-arguments constructor + FillConfig config = new FillConfig(); + assertEquals(config.getDirection(), WriteDirectionEnum.VERTICAL); + assertFalse(config.getForceNewRow()); + assertTrue(config.getAutoStyle()); + + // Full-arguments constructor + config = new FillConfig(WriteDirectionEnum.HORIZONTAL, Boolean.TRUE, Boolean.FALSE); + assertEquals(config.getDirection(), WriteDirectionEnum.HORIZONTAL); + assertTrue(config.getForceNewRow()); + assertFalse(config.getAutoStyle()); + } + + @Test + void creationByBuilderTest() { + // default builder + FillConfig config = FillConfig.builder().build(); + assertEquals(config.getDirection(), WriteDirectionEnum.VERTICAL); + assertFalse(config.getForceNewRow()); + assertTrue(config.getAutoStyle()); + + // builder with some actions + config = FillConfig.builder() + .direction(WriteDirectionEnum.HORIZONTAL) + .autoStyle(Boolean.FALSE) + .forceNewRow(Boolean.TRUE) + .build(); + assertEquals(config.getDirection(), WriteDirectionEnum.HORIZONTAL); + assertTrue(config.getForceNewRow()); + assertFalse(config.getAutoStyle()); + } +}