Java 实现excel大批量导出

实现excel大数据量导出

导出Excel时,如果数据量较大,全部查询出来list,然后写入Workboook,会出现内存异常异常,建议使用SXSSFWorkbook,然后设置setCompressTempFiles属性为true

复制代码
@Test
    public void testBigExcel(){
        try {
            long startTime = System.currentTimeMillis();
            final int NUM_OF_ROWS = 1300000;
            final int NUM_OF_COLUMNS = 21;

            SXSSFWorkbook wb = null;
            try {
                wb = new SXSSFWorkbook();
                //压缩临时文件,很重要,否则磁盘很快就会被写满
                wb.setCompressTempFiles(true);
                Sheet sh =null;
                int sheetNum=1;
                int rowNum = 0;
                for (int num = 0; num < NUM_OF_ROWS; num++) {
                    if (num % 1000000 == 0) {
                        sh = wb.createSheet("Sheet " + sheetNum);
                        rowNum = 0;
                        sheetNum++;
                    }else{
                        rowNum++;
                    }

                    org.apache.poi.ss.usermodel.Row row = sh.createRow(rowNum);
                    for (int cellNum = 0; cellNum < NUM_OF_COLUMNS; cellNum++) {
                        Cell cell = row.createCell(cellNum);
                        cell.setCellValue(Math.random());
                    }
                }

                FileOutputStream out = new FileOutputStream("d:/Maruko.xlsx");
                wb.write(out);
                out.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                if (wb != null) {
                    wb.dispose();// 删除临时文件,很重要,否则磁盘可能会被写满
                }
            }

            long endTime = System.currentTimeMillis();
            System.out.println("花费时间为:" + (endTime - startTime));
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
    }
相关推荐
NignSah7 分钟前
Microsoft Excel World Championship 2025-2025EXCEL大赛,折纸
microsoft·excel
hhzz9 分钟前
Springboot项目中使用POI操作Excel(详细教程系列1/3)
spring boot·后端·excel·poi·easypoi
林月明13 分钟前
【VBA】点击一个按钮实现自动更新excel文件列数据
excel·vba·宏文件·一键数据更新
2501_9071368241 分钟前
Word题库转换Excel
word·excel·软件需求
それども2 小时前
Apache POI XSSFWorkbook 写入Excel文件的潜在风险
apache·excel
百事牛科技1 天前
Excel打开密码怎么设置?一篇讲清楚
windows·excel
玩泥巴的1 天前
基于.NET操作Excel COM组件生成数据透视报表
c#·.net·excel·二次开发·com互操作
2301_800256111 天前
【数据库】查找距离最近的电影院 pgSQL 存储过程片段
大数据·数据库·excel
城数派1 天前
我国省市县三级逐日、逐月和逐年降水数据(Shp/Excel格式)1960-2024年
大数据·数据分析·excel
WKP94181 天前
POI操作excel示例
java·开发语言·excel