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;
        }
    }
相关推荐
Non-existent9874 小时前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis9 小时前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer10 小时前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel12 小时前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy12 小时前
excel从某一列中用match筛选匹配的数据
excel
qq_5469372712 小时前
Excel批量转PDF_Word_图片,支持自动合并报表,效率翻倍。
pdf·word·excel
ai_coder_ai12 小时前
在自动化脚本中操作excel文件
运维·自动化·excel
三千花灯13 小时前
【Playwright】 自动化测试之参数化登录(Excel/CSV 数据源)
人工智能·机器学习·excel
罗政13 小时前
AI工作流实现Excel全自动化(支持SQL)-案例:医院门诊排班表
人工智能·自动化·excel
小妖66613 小时前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba