[alibaba/easyexcel]复杂的填充:r开头的字段无法写入

2024-02-19 683 views
8

测试类:com.alibaba.easyexcel.test.temp.FillTempTest#complexFillWithTable 在data()中加入相关字段

        List<FillData> list = new ArrayList<FillData>();
        for (int i = 0; i < 10; i++) {
            FillData fillData = new FillData();
            list.add(fillData);
            fillData.setName("张三");
            fillData.setNumber(5.2);
            fillData.setRName("dragon");
        }
        return list;
    }
@Getter
@Setter
@EqualsAndHashCode
public class FillData {
    private String name;
    private double number;
    private Date date;
// 测试字段
    private String rName;

}

complex.xlsx中加入

r类型测试
{.rName}

结果就是无法显示该字段

  |   | 时间:2019年10月9日13:28:28 |   |   姓名 | 数字 | 姓名 | 数字 | r类型测试 张三 | 5.2 | 张三 | 5.2 |   张三 | 统计: |   |   |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |   张三 | 5.2 | 张三 | 5.2 |     |   |   | 统计:1000 |  

回答

3

具体原因是因为 com.alibaba.excel.util.BeanMapUtils#create 导致的,若字段为单首字母开头,则首字母会转成大写,导入后面dataKeySet.contains(variable) 无法匹配,我会继续关注这个问题

4

这是你实体类的问题,准确来说是Lombok的问题 调整lombok设置,或者直接手动添加get set方法即可 例子中 去掉注解 手动添加如下get set即可解决


public String getrName() {
        return rName;
    }

    public void setrName(String rName) {
        this.rName = rName;
    }