业务背景:
列表导出,数据导出超过65533行
解决方案:
1、超出65533行,直接系统提示:本系统支持导出的最大条数为65533行
2、导出模版改为.xlsx,POI导出时用XSSFWorkbook,把所有数据都拿到内存里,可以导出超过65533行,但是上线之后,发现会内存溢出
3、导出模版改为.xlsx,POI导出时用SXSSFWorkbook,每次往内存里放一定的数据,导完之后,刷新,再次从磁盘往内存放数据,会产生临时文件,导出完成之后,需把临时文件删掉,这种方式会使CPU短暂升高,但是很快会降下去
private static ByteArrayInputStream WriteToExcelTemplate(DataModel dataModel, HttpServletRequest request) {
String template = getRealPathModelExcel(dataModel.getTemplate(), request);
FileInputStream fileInputStream = new FileInputStream(template);
XSSFWorkbook workBook = new XSSFWorkbook(fileInputStream);
int rowaccess = 100;
SXSSFWorkbook wb = new SXSSFWorkbook(workBook,rowaccess);
ByteArrayOutputStream byteArrayOutputStream &#