[alibaba/easyexcel]读取过长数字(>18位)时候出现数字有误

2024-05-24 496 views
9

触发场景描述 读取 Excel 中 过长的数字有误:

例如读取: 100321572315281000 结果: 100221564646660990

触发Bug的代码

JavaBean:
@ExcelProperty("ID")
    private String id;

读取代码:
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(sourceExcelPath));

        ExcelReader excelReader = EasyExcel.read(bufferedInputStream, BalFlowTran.class, new BalFlowTranListener()).build();
        ReadSheet readSheet = EasyExcel.readSheet(0).build();
        excelReader.read(readSheet);

        // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的
        excelReader.finish();

提示的异常或者没有达到的效果 读出来的数字是: 100221564646660990

回答

6

作者好像说过这情况,换成String接收就行 先自己代码做转化您后续修复

0

换成 String 接收 指的是 excel 里面格式设置为 String 吗 还是?

2

我也遇到了,那个自定义转换器cellData.getStringValue();读取的也是null, 还是把excel单元格格式弄成文本就行了

1

楼上正解!!! 谢谢你~~ 我刚刚也发现了这个问题。。。。。 处理方案: 1、Excel 过长的数字 需要将单元格 格式 设置为文本 2、尽量用 file 来处理文件

8

@fre

楼上正解!!! 谢谢你~~ 我刚刚也发现了这个问题。。。。。 处理方案: 1、Excel 过长的数字 需要将单元格 格式 设置为文本 2、尽量用 file 来处理文件

你好怎样设置单元格 格式为文本???找了一下午没找到解决方案