Java Excel导出多个工作表(添加多个sheet)

来源:互联网 发布:一次性筷子知乎 编辑:程序博客网 时间:2024/05/27 03:27

当数据量比较大的时候,如果超过了65536条的时候,导出的时候就会如下的错误:

jxl.write.biff.RowsExceededException: The maximum number of rows permitted on a worksheet been exceeded

(解释:jxl.write.biff.RowsExceededException:允许在工作表的最大行数已经超过)

所以,我的解决方案是导出多个工作表格。

<span style="font-family:Microsoft YaHei;font-size:12px;">public static void outputExcelData() throws IOException, WriteException {        /**给List存值*/        List result = new ArrayList();        User user = new User();        user.setId("1");        user.setName("yfli");        result.add(user);        User user2 = new User();        user2.setId("1");        user2.setName("zhangjie");        result.add(user2);        User user3 = new User();        user3.setId("1");        user3.setName("lzhang");        result.add(user3);           String fileName = "F:\\sfData.xls";        //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象              WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName));        File dbfFile = new File(fileName);        if (!dbfFile.exists() || dbfFile.isDirectory()) {            dbfFile.createNewFile();        }        int totle = result.size();//获取List集合的size        int mus = 2;//每个工作表格最多存储2条数据(注:excel表格一个工作表可以存储65536条)        int avg = totle / mus;        for (int i = 0; i < avg + 1; i++) {            WritableSheet ws = wwb.createSheet("列表" + (i + 1), i);  //创建一个可写入的工作表              //添加表头            ws.addCell(new Label(0, 0, "序号"));             ws.addCell(new Label(1, 0, "姓名"));            int num = i * mus;             int index = 0;             for (int m = num; m < result.size(); m++) {                if (index == mus) {//判断index == mus的时候跳出当前for循环                    break;                }                User use = (User) result.get(m);//将生成的单元格添加到工作表中 //(这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行)                     ws.addCell(new Label(0, index + 1, use.getId()));                ws.addCell(new Label(1, index + 1, use.getName()));                index++;            }        }        wwb.write();//从内存中写入文件中           wwb.close();//关闭资源,释放内存          }</span>


1 0
原创粉丝点击