[alibaba/easyexcel]如何获取CellData?

2024-06-20 869 views
6

想要获取CellType,但是现在数据通过ModelBuildEventListener处理后,CellData拿不到,请问有什么办法吗?

回答

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将 image这段注释,然后自定义EventListener image,即可获取最原生的Map<Integer, CellData>,当然这样可能会影响其他功能,但这是一个方法