[alibaba/easyexcel]读Excel时自定义列转换器,当遇到空单元格不会调用convertToJavaData方法

2024-04-25 554 views
6

微信图片_20230525092531 微信图片_20230525092546 微信图片_20230525092948 微信图片_20230525093016 指定了两个列来放图片,读图片需要知道这两个列的行号和列号,所以启用了自定义转换器,想在转换的时候读取出来行号和列号,但是放图片的单元格不会有任何文字,这样就不会调用convertToJavaData方法了,请问怎么才能在单元格为空的时候也调用convertToJavaData方法

回答

8

我试了下Microsoft Excel 在单元格插入图片,发现图片貌似是悬浮与单元格上的,看上去像是和单元格没有关联,这样的话 相当于你该单元格是空的,跟了下源码,ModelBuildEventListener#buildUserModel 里面 cellDataMap 是没有空单元格数据的,因此没有调用 convert 方法。 既然要解决问题,为什么不在 AnalysisEventListener 里的 invoke 方法判断图片字段是否为空,手动转换呢?或者说存图片url?

7

我都是模板填充图片时,对应字段给空字符串,图片资源另外传入 .registerWriteHandler(new ImageModifyHandler(‘图片资源’)