alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具
https://easyexcel.opensource.alibaba.com
Apache License 2.0
32.01k stars 7.49k forks source link

DataListener被spring管理发生数据错乱 #1800

Closed loubobooo closed 3 years ago

loubobooo commented 3 years ago

问题 这里dataListener被spring管理,注入到spring容器中。使用上传文件之后读取文件,第一次读取数据没有问题,第二次读取会发生数据错乱的问题(也就是数据不断累加上去)。 异常代码

           ExcelReader excelReader = null;
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();

            excelReader = EasyExcel.read(inputStream, SysUser.class,
                    dataListener).build();
            ReadSheet readSheet = EasyExcel.readSheet(0).build();
            excelReader.read(readSheet);
        } catch (Exception e) {
        } finally {
            inputStream.close();
            // 这里一定别忘记关闭,读的时候会创建临时文件,到时磁盘会崩
            if (excelReader != null) {
                excelReader.finish();
            }
        }

异常提示 INFO c.p.config.SysUserUploadListener 47 saveData - 99条数据,开始存储数据库! INFO c.p.config.SysUserUploadListener 47 saveData - 198条数据,开始存储数据库! INFO c.p.config.SysUserUploadListener 47 saveData - 297条数据,开始存储数据库!

cucuzi commented 3 years ago

https://www.yuque.com/easyexcel/doc/read#8e72a573 这边建议您先看下使用说明再写代码。

zhuangjiaju commented 3 years ago

不支持