From 7a0ecc555bb6973394e5b5581254b53cbc4e0e39 Mon Sep 17 00:00:00 2001
From: ttt-noora <11911336@mail.sustech.edu.cn>
Date: Sat, 28 May 2022 14:39:08 +0800
Subject: [PATCH] fix#2376
---
.../executor/ExcelWriteFillExecutor.java | 6 +--
.../easyexcel/test/demo/write/WriteTest.java | 42 +++++++++++++++---
easyexcel-test/src/test/resources/fill/t.xlsx | Bin 0 -> 11801 bytes
3 files changed, 39 insertions(+), 9 deletions(-)
create mode 100644 easyexcel-test/src/test/resources/fill/t.xlsx
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 6779e875..aa918dfc 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
@@ -210,10 +210,10 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
if (analysisCell.getOnlyOneVariable()) {
String variable = analysisCell.getVariableList().get(0);
- if (!dataKeySet.contains(variable)) {
- continue;
+ Object value = null;
+ if (dataKeySet.contains(variable)) {
+ value = dataMap.get(variable);
}
- Object value = dataMap.get(variable);
ExcelContentProperty excelContentProperty = ClassUtils.declaredExcelContentProperty(dataMap,
writeContext.currentWriteHolder().excelWriteHeadProperty().getHeadClazz(), variable);
cellWriteHandlerContext.setExcelContentProperty(excelContentProperty);
diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java
index f7d015ca..df06217b 100644
--- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java
+++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java
@@ -3,11 +3,7 @@ package com.alibaba.easyexcel.test.demo.write;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import com.alibaba.easyexcel.test.util.TestFileUtil;
import com.alibaba.excel.EasyExcel;
@@ -30,6 +26,7 @@ import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.util.BooleanUtils;
import com.alibaba.excel.util.FileUtils;
import com.alibaba.excel.util.ListUtils;
+import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
import com.alibaba.excel.write.merge.LoopMergeStrategy;
@@ -56,7 +53,40 @@ import org.junit.Test;
*/
@Ignore
public class WriteTest {
-
+ /**
+ * 根据模板写入
+ *
+ * 1. 创建excel对应的实体对象 参照{@link IndexData}
+ *
+ * 2. 使用{@link ExcelProperty}注解指定写入可能带有缺失值的列
+ *
+ * 3. 使用withTemplate 写取模板
+ *
+ * 4. 直接写即可
+ */
+ @Test
+ public void templateWrite_1(){
+ // 采用List