EasyExcel版本:2.2.7
在官方文档找了比较久, 没有找到对应的使用说明,这个版本是公司版本(因历史原因不能升级包),找方法找了比较久,这里记录一下
自己测试了30w的数据量(生成 + 上传文件系统)大概是60秒的样子
建议使用新版本的,文档啥的都很齐全,这种方法新版本也可以用;
//这里创建一个输出的文件流
File tempFile = File.createTempFile("PG_REGISTER", ".xlsx");
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
ExcelWriter excelWriter = EasyExcel.write(fileOutputStream).head(headList).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
//写入请求内容 这里是个人的循环写入方法
setExcelWriter(excelWriter, writeSheet, dataQueryDto, queryVo);
excelWriter.write(detailList, writeSheet);
if (sequence != null){
setExcelWriter(excelWriter, writeSheet, dataQueryDto, queryVo);
}
//用完之后finish一下
excelWriter.finish();
//文件太大又压缩了一下
File zipFile = ZipUtil.zip(tempFile, StandardCharsets.UTF_8);
FileInputStream fileInputStream = new FileInputStream(zipFile);
//上传到文件系统
String fastFileUrl = fastClientWrapper.uploadFile(fileInputStream, zipFile.length(), "zip", null);