diff --git a/src/main/java/com/poiji/annotation/ExcelCellName.java b/src/main/java/com/poiji/annotation/ExcelCellName.java index 53b6d64..eb5a0bb 100644 --- a/src/main/java/com/poiji/annotation/ExcelCellName.java +++ b/src/main/java/com/poiji/annotation/ExcelCellName.java @@ -32,9 +32,11 @@ /** * Delimeter for column multiname. - * + *
* Example: @ExcelCellName(value = "id,identifier", delimerer = ",")
- * means that column with name 'id' will be mapped, or if no column 'id', then column 'identifier' will be mapped to this field.
+ * reading: column with name 'id' will be mapped into field, or if no column 'id',
+ * then column 'identifier' will be mapped into field.
+ * writing: field will be saved into column 'id'
*
* @return delimeter for column multiname.
*/
diff --git a/src/main/java/com/poiji/save/MappedFields.java b/src/main/java/com/poiji/save/MappedFields.java
index c5ccea7..d04e292 100644
--- a/src/main/java/com/poiji/save/MappedFields.java
+++ b/src/main/java/com/poiji/save/MappedFields.java
@@ -53,7 +53,10 @@ public MappedFields parseEntity() {
} else {
final ExcelCellName annotation = field.getAnnotation(ExcelCellName.class);
if (annotation != null) {
- final String excelName = annotation.value();
+ final String delimeter = annotation.delimeter();
+ final String excelName = delimeter.isEmpty()
+ ? annotation.value()
+ : annotation.value().substring(0, annotation.value().indexOf(delimeter));
final int order = annotation.order();
if (order == ABSENT_ORDER) {
unordered.add(field);
diff --git a/src/test/java/com/poiji/deserialize/MultinameTest.java b/src/test/java/com/poiji/deserialize/MultinameTest.java
new file mode 100644
index 0000000..7a9aebf
--- /dev/null
+++ b/src/test/java/com/poiji/deserialize/MultinameTest.java
@@ -0,0 +1,40 @@
+package com.poiji.deserialize;
+
+import com.poiji.bind.Poiji;
+import com.poiji.deserialize.model.ConcurrentEntity;
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import static java.util.Collections.singletonList;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertThat;
+
+@RunWith(Parameterized.class)
+public class MultinameTest {
+
+ private final String path;
+
+ public MultinameTest(String path) {
+ this.path = path;
+ }
+
+ @Parameterized.Parameters
+ public static List