Cannot get a STRING value from a NUMERIC cell poi异常解决;easy-poi;jeecg-boot-poi
出现原因:
在集成jeecg-boot框架开发之后
使用jeecg-boot-auto-poi (封装的easy-poi)导入数据时
因为excel中有函数表达式出现的错误
导入的代码
而在源码中CellValueServer这一个类,在读取excel时
这个地方在读取它不但判断了该cell是函数还指定该字段对应的类型为Number类型
但是读取的时候指定类为Map 而Map默认value的类型为 Object,
所以他就走到了最后一个else里面
但是这个方法是解析不到函数表达式的值得,就会抛出问题描述中的异常
解决方案1 :
将映射类型从Map改为一个实体类,并将函数表达式那一列设置为数值类型
解决方案2 :
这里使用的是jeecg-boot-autopoi,其他原理一样
但是有些复杂导入这里必须要使用map
所以方案是去修改源码
利用maven下载该依赖的源码
![在这里插入图片描述](https://img-blog.csdnimg.cn/1ace154c306649ae838c6b7e108e0008.png
然后再仓库中找到该源码
将这个源码解压,新建一个模块到项目中,将源码放进去,此时会大量爆红
需要将这个pom文件引入,而这个文件中依赖版本的声明都在父pom文件中
父POM
讲这个文件中的依赖版本 填入刚才的pom文件中,这样就完成了,如图
然后就可以修改源码了
我这里修改方式是这样,大家可以根据自己业务随意修改@_@