导出大数据到Excel

使用SXSSFWorkbook

SXSSFWorkbook wb = new SXSSFWorkbook(1000);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要导出大量数据到Excel时,可以考虑采用分页导出的方式,每次只导出一页数据,避免一次性获取数据过多导致内存溢出的问题。以下是一种常见的分页导出Excel的方式: 1. 将需要导出的数据按照分页大小进行分页,每次查询一页数据。 2. 使用POI等Java Excel操作库,将查询到的一页数据写入Excel文件中。 3. 循环执行步骤1和步骤2,直到所有数据都导出Excel文件中。 下面是一个简单的代码示例: ``` // 设置分页大小 int pageSize = 1000; // 创建Excel文件和工作表 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 查询总记录数 int total = getDataTotal(); // 分页导出数据 for(int i = 0; i < total; i += pageSize) { // 查询一页数据 List<Data> dataList = getDataByPage(i, pageSize); // 将一页数据写入Excel文件中 for(int j = 0; j < dataList.size(); j++) { Data data = dataList.get(j); Row row = sheet.createRow(i + j); row.createCell(0).setCellValue(data.getId()); row.createCell(1).setCellValue(data.getName()); row.createCell(2).setCellValue(data.getValue()); // ... } } // 将Excel文件写入输出流 OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); ``` 在上面的代码中,首先设置了分页大小为1000条数据,然后查询总记录数,接着循环执行分页查询数据并写入Excel文件中,最后将Excel文件写入输出流返回给前端。这样可以避免一次性获取数据过多导致内存溢出的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值