Open znj929 opened 3 months ago
使用 ExcelWriter 生产文件到服务端,然后通过地址前端下载文件,要等很久文件才能正常写入完成,才能正常下载。
大致代码 public R exportFullCountryPartNum() { ExcelWriter excelWriter = null; String fileName = Constants.FullCountryPartNum + System.currentTimeMillis() + ExcelTypeEnum.XLSX.getValue(); String filePath = Constants.PROJECTPROFILE + "/" + fileName; FileUtil.makeDir(filePath); try { FileCommonUtils.validaFile(filePath); excelWriter = EasyExcel.write(filePath, ExportCountryPartNumVO.class) .build(); WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").build();
for (int i = 0; i < partNumList.size(); i++) { excelWriter.write(pictureList, writeSheet); } } catch (Exception e) { return R.error("Export failed, please re export or contact the administrator!"); } finally { excelWriter.close(); } return R.data(fileName); }
可能数据量太大,试试改成异步导出,将生成文件和下载文件2个步骤拆分出来,生成文件时保存导出记录(可以包含导出条件、导出人、导出时间、文件格式、文件大小、文件路径等等),下载文件时通过查看导出记录下载目标文件。
使用 ExcelWriter 生产文件到服务端,然后通过地址前端下载文件,要等很久文件才能正常写入完成,才能正常下载。
大致代码 public R exportFullCountryPartNum() { ExcelWriter excelWriter = null; String fileName = Constants.FullCountryPartNum + System.currentTimeMillis() + ExcelTypeEnum.XLSX.getValue(); String filePath = Constants.PROJECTPROFILE + "/" + fileName; FileUtil.makeDir(filePath); try { FileCommonUtils.validaFile(filePath); excelWriter = EasyExcel.write(filePath, ExportCountryPartNumVO.class) .build(); WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").build();