java poi写入xls超过65536报错

异常:java.lang.IllegalArgumentException: Invalid row number (65536) outside allow

解决方案1:

换成xlsx,2007版本,没有数量限制;

解决方案2:

		//创建新的工作薄
        Workbook wb = new HSSFWorkbook();
        // 创建第一个sheet(页),并命名
        Sheet sheet = wb.createSheet(name);
 		//记录额外创建的sheet数量
        int index = 0;
        //设置每行每列的值
        for (int i = 1; i <= lists.size(); i++) {
            // Row 行,Cell 方格 , Row 和 Cell 都是从0开始计数的
            //数据超过65535,分多个sheet页
            if (i  % 65535 == 0) {
                sheet = wb.createSheet(name + (index + 1));
                Row row1 = sheet.createRow(0);
                for(int j=0;j<titles.length;j++){
                    Cell cell = row1.createCell(j);
                    cell.setCellValue(lists.get(i-1).get(j));
                    cell.setCellStyle(cs2);
                }
                index++;
            }
            Row row1 = sheet.createRow((i) - (index * 65535));
            for(int j=0;j<titles.length;j++){
                Cell cell = row1.createCell(j);
                cell.setCellValue(lists.get(i-1).get(j));
                cell.setCellStyle(cs2);
            }
        
        }
改完之后,这里每页存入65535条数据;

6PxOBT.png

原文地址:https://www.cnblogs.com/SimonHu1993/p/14463693.html