SXSSFWorkbook的使用
public JSONObject testSXSSFWorkbook(HttpServletResponse res) {
SXSSFWorkbook sxssfWorkbook = null;
try {
// 使用poi的 SXSSFWorkbook,他会把内存数据存入磁盘中,占用内存就小
//SXSSFWorkbook 只会保留500条数据在内存中,其它的数据都会写到磁盘里,这样的话占用的内存就会很少
// 这里要注意的是,如果你需要某些样式,必须使用XSSFWorkbook 先行设置,否则样式会不生效
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
XSSFSheet xssfSheet = xssfWorkbook.createSheet("0");
// 设置 xssfSheet 的样式。
// 创建 SXSSFWorkbook
sxssfWorkbook = new SXSSFWorkbook(xssfWorkbook, 500);
SXSSFSheet sxssfSheet = sxssfWorkbook.getSheetAt(0);
List<String> testList = new ArrayList<>();
testList.add("1111");
testList.add("1111");
testList.add("1111");
// 设置 sxssfSheet 内容、样式等等,这里我们推荐进行数据库分页查询,一步步写入到sheet,这样数据库压力和应用内存占用会更加小。
// 最后向客户端输出文件流
sxssfWorkbook.write(res.getOutputStream());
} catch (IOException e) {
log.error("生成导出文件失败,错误信息", e);
} finally {
if (sxssfWorkbook != null) {
sxssfWorkbook.dispose();// 释放workbook所占用的所有windows资源
}
}
return null;
}