Browse Source

ignore static final and transient

developing
TangDH03 5 years ago
parent
commit
3dc6f7a762
  1. 9
      src/main/java/com/alibaba/excel/metadata/property/ExcelHeadProperty.java
  2. 2
      src/test/java/com/alibaba/easyexcel/test/demo/write/ComplexHeadData.java
  3. 2
      src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java

9
src/main/java/com/alibaba/excel/metadata/property/ExcelHeadProperty.java

@ -1,6 +1,7 @@
package com.alibaba.excel.metadata.property; package com.alibaba.excel.metadata.property;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@ -123,6 +124,14 @@ public class ExcelHeadProperty {
Map<Integer, Field> customFiledMap = new TreeMap<Integer, Field>(); Map<Integer, Field> customFiledMap = new TreeMap<Integer, Field>();
for (Field field : fieldList) { for (Field field : fieldList) {
ExcelIgnore excelIgnore = field.getAnnotation(ExcelIgnore.class); ExcelIgnore excelIgnore = field.getAnnotation(ExcelIgnore.class);
if(Modifier.isStatic(field.getModifiers())&&Modifier.isFinal(field.getModifiers())){
ignoreMap.put(field.getName(),field);
continue;
}
if(Modifier.isTransient(field.getModifiers())){
ignoreMap.put(field.getName(),field);
continue;
}
if (excelIgnore != null) { if (excelIgnore != null) {
ignoreMap.put(field.getName(), field); ignoreMap.put(field.getName(), field);
continue; continue;

2
src/test/java/com/alibaba/easyexcel/test/demo/write/ComplexHeadData.java

@ -13,6 +13,8 @@ import lombok.Data;
**/ **/
@Data @Data
public class ComplexHeadData { public class ComplexHeadData {
private final static String TITLE = "title";
private transient String trans = "transient";
@ExcelProperty({"主标题", "字符串标题"}) @ExcelProperty({"主标题", "字符串标题"})
private String string; private String string;
@ExcelProperty({"主标题", "日期标题"}) @ExcelProperty({"主标题", "日期标题"})

2
src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java

@ -85,7 +85,7 @@ public class WriteTest {
* <p> * <p>
* 2. 使用{@link ExcelProperty}注解指定复杂的头 * 2. 使用{@link ExcelProperty}注解指定复杂的头
* <p> * <p>
* 3. 直接写即可 * 3. 直接写即可,写入时会忽略static final和 transient
*/ */
@Test @Test
public void complexHeadWrite() { public void complexHeadWrite() {

Loading…
Cancel
Save