easyexcel 通过poi的静态方法设置临时文件目录第一次不生效

6bc51xsx  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(99)

建议先去看文档

快速开始常见问题

触发场景描述

通过poi的静态方法设置临时文件目录第一次不生效,
TempFile.setTempFileCreationStrategy(new DefaultTempFileCreationStrategy(new File(path)));
设置之后第一次的写excel临时文件目录还是在默认位置,AppData\Local\Temp\,第一次写完之后临时目录会更新到设置的path路径

触发Bug的代码

while (i++ < 10) {
            String fieldName = "用户交互日志" + System.currentTimeMillis() + ".xlsx";
            long time = System.currentTimeMillis();
            TempFile.setTempFileCreationStrategy(new DefaultTempFileCreationStrategy(new File("C:\\Users\\22033807\\Desktop\\temp\\")));
            EasyExcelUtil.includeWriteExcel(path + fieldName, nlpData, "模板", titles, null);
            System.out.println("cost time:" + (System.currentTimeMillis() - time));
        }

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

TempFile.setTempFileCreationStrategy(new DefaultTempFileCreationStrategy(new File(path)));
设置之后在SXSSFWorkbook的dispose()方法内打断点,可以看到sheet._writer._fd
第一次的写excel临时文件目录还是在默认位置,AppData\Local\Temp\,第一次写完之后临时目录会更新到设置的path路径

mbjcgjjk

mbjcgjjk1#

你要解决什么问题

cfh9epnr

cfh9epnr2#

这个应该是用法问题。 更推荐这样使用:

// 先试用easyExcel的excel临时目录设置
com.alibaba.excel.util.FileUtils#setPoiFilesPath("C:\\Users\\22033807\\Desktop\\temp\\");
// 然后生成excel的临时文件就会在你设置的目录里面了
while(condition){
    EasyExcelUtil.includeWriteExcel(...);
}

相关问题