想要获取CellType,但是现在数据通过ModelBuildEventListener处理后,CellData拿不到,请问有什么办法吗?
Q
[alibaba/easyexcel]如何获取CellData?
6
A
回答
6
对象定义字段就是CellData 就能拿到
3
对象定义字段就是CellData 就能拿到
这样确实可以,但是如果excel文件是动态列呢,需要自定义Convert?
2
注解上面 加个名字就能定位
5
注解上面 加个名字就能定位
你是说定位到Converter吗?Converter还是需要写的对吧?
5
你用 CellData 接收了 就不会自动转换了。定义Converter也没用,需要自己转换数据
2
你用 CellData 接收了 就不会自动转换了。定义Converter也没用,需要自己转换数据
我的意思是这样的,因为excel的列的个数是动态的,不好定义对象的字段个数 ` @Data public class DemoData2 {
private CellData data1;
private CellData data2;
private CellData data3;
private CellData data4;
} ` 比如这边定义了4个字段,但是excel有10列或者更多,这样就没办法解析了。
1
你别指定class 会返回list<Map<Intege,String>>
5
所以CellData对象还是不好拿是吧?拿到的值是String,单元格的类型拿不到
4
嗯 你既要知道类型 又要不定数量 比较复杂。建议用自己用poi自己转换对象。后续我也想想关于类型的处理。
3
可以用此方法解决,现在源码里面的数据都要先经过ModelBuildEventListener处理,在AbstractReadHolder将 这段注释,然后自定义EventListener ,即可获取最原生的Map<Integer, CellData>,当然这样可能会影响其他功能,但这是一个方法