easyexcel 测试类中写入表格数据丢失

wbgh16ku  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(28)

触发场景描述

测试方法中

这个,之后如果要保存数据,应该加上excelWriter.finish();
不加就会出现生成的表格里面没有sheet也没有数据

触发Bug的代码

// 方法2: 如果写到不同的sheet 同一个对象
        fileName = TestFileUtil.getPath() + "repeatedWrite" + System.currentTimeMillis() + ".xlsx";
        // 这里 指定文件
        try (ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build()) {
            // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面
            for (int i = 0; i < 5; i++) {
                // 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样
                WriteSheet writeSheet = EasyExcel.writerSheet(i, "模板" + i).build();
                // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
                List<DemoData> data = data();
                excelWriter.write(data, writeSheet);
            }
        }

提示的异常或者没有达到的效果

没有达到效果就会出现类似下图

sheet名字并不是想要的,并且sheet里面没有数据信息

cbjzeqam

cbjzeqam1#

try (ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build()){}

这种try-with-resource 的写法,会在try完成后,自动执行close方法,close会调用finish.

如果你在try里面用这个文件,那么可能出现这种情况,请在try后面再看这个文件试试

相关问题