使用 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);
}
1条答案
按热度按时间y3bcpkx11#
可能数据量太大,试试改成异步导出,将生成文件和下载文件2个步骤拆分出来,生成文件时保存导出记录(可以包含导出条件、导出人、导出时间、文件格式、文件大小、文件路径等等),下载文件时通过查看导出记录下载目标文件。