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());
+ }
+}