9月24
解决方法
写入excel时使用 SXSSFWorkbook workbook = new SXSSFWorkbook(xssfWorkbook , 1000);只在内存中留1000行,不会占用过多的内存。下面只贴了部分代码。
public static void createExcelByTrade(List mergeCellConfigList , Map cellConfMap , List dataList ,String tempPath , String fileName ) {
try {
int excelRowNum = 0;
short fontSize = 12;
// 创建新的Excel 工作簿
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
SXSSFWorkbook workbook = new SXSSFWorkbook(xssfWorkbook , 1000);
Sheet sheet = workbook.createSheet(fileName);
// 设置合并表头
setMergeHeaderCellByTrade( workbook, sheet, mergeCellConfigList , excelRowNum, fontSize );
excelRowNum ++ ;
excelRowNum ++ ;
//设置表头
setHeaderCell( workbook, sheet, cellConfMap , excelRowNum, fontSize );
excelRowNum ++ ; //查询数据库中所有的数据
setCellData( workbook, sheet, cellConfMap, dataList, excelRowNum, fontSize);
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(tempPath);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
//清空缓冲区数据
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");
} catch (Exception e) {
e.printStackTrace();
System.out.println("已运行 xlCreate() : " + e);
}
}
写入excel时使用 SXSSFWorkbook workbook = new SXSSFWorkbook(xssfWorkbook , 1000);只在内存中留1000行,不会占用过多的内存。下面只贴了部分代码。
public static void createExcelByTrade(List
try {
int excelRowNum = 0;
short fontSize = 12;
// 创建新的Excel 工作簿
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
SXSSFWorkbook workbook = new SXSSFWorkbook(xssfWorkbook , 1000);
Sheet sheet = workbook.createSheet(fileName);
// 设置合并表头
setMergeHeaderCellByTrade( workbook, sheet, mergeCellConfigList , excelRowNum, fontSize );
excelRowNum ++ ;
excelRowNum ++ ;
//设置表头
setHeaderCell( workbook, sheet, cellConfMap , excelRowNum, fontSize );
excelRowNum ++ ; //查询数据库中所有的数据
setCellData( workbook, sheet, cellConfMap, dataList, excelRowNum, fontSize);
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(tempPath);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
//清空缓冲区数据
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");
} catch (Exception e) {
e.printStackTrace();
System.out.println("已运行 xlCreate() : " + e);
}
}





