[alibaba/easyexcel]无法导入原始数据的问题

2024-01-04 818 views
2
问题描述

首先我的监听使用的是Map来接收数据,不是使用的实体类。 其次 excel里面的原始数据是153.1124,excel的单元格格式为数字 不保留小数 所以显示的是153 最后 在执行导入时候 通过debug看到 easy获取到的数据是153。 问题 如何能获取到153.1124数据。 已经在议题中找到类似解答 是要变为bigdecimal格式 。在转变为bigdecimal后仍然存在该问题。 求助在不改变接受对象的情况下如何解决该问题。

excel数据

微信截图_20230815094319

代码

code

回答

1

看起来excel保存的就不是小数,被格式化成整数了,原始数据能在excel展示小数吗

2

excel保存的是小数,只是但单元格格式是整数。

1

当鼠标放到这个单元格上面时候 ecxel最上面的那个显示数值的地方显示的就是小数 但是显示出来的是整数。我不明白我说清楚了没。你可以新建一个excel 然后在一个单元格输入小数 然后把单元格格式调整为数值 保留0位小数 就会出现我说的这种情况了。

9

原始数据用poi的读取吧,cell.getNumericCellValue()这个方法能读取到原始数据

2

那easyexcel如何改造一下用poi读取呢。因为项目需要读大量数据 用easyexcel快一点。

5

文档:https://easyexcel.opensource.alibaba.com/docs/current/api/#readworkbook ReadWorkbook的readDefaultReturn默认为STRING:会返回一个Map<Integer,String>的数组,返回值就是你在excel里面不点击单元格看到的内容,改成ACTUAL_DATA或READ_CELL_DATA试试

EasyExcel.read(...).readDefaultReturn(ReadDefaultReturnEnum.READ_CELL_DATA)
3

感谢大佬解惑,成功解决问题。