2

我正在用java开发一个应用程序,我正在使用JXL库。所以我尝试了这个:

File f = new File("test.xls");
ArrayList<String[]> ins = new ArrayList<String[]>();
        for(int i=0;i<20;i++){
           ins.add(new String[]{"-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------", i,"-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------","-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------", "-------"+i+"-------"}); // JUST FOR EXAMPLE
        }
        WritableWorkbook workbook = Workbook.createWorkbook(f);

            WritableSheet sheet = workbook.createSheet("TEST1", 0);
            String[] headers = new String[]{"HEADER1", "HEADER2", "HEADER3", "HEADER4", "HEADER5", "HEADER6", "HEADER7", "HEADER8", "HEADER9", "HEADER10", "HEADER12"};
            for(int i=0;i<headers.length;i++){
               sheet.addCell(new Label(i, 0, headers[i]));
            }
            for(int i=0;i<ins.size();i++){
               String tmp[] = ins.get(i);
               for(int j=0;j<tmp.length;i++){
                  sheet.addCell(new Label(j,i+1,tmp[j].toString()));
               }
            }
            workbook.write();
            workbook.close();
    }

当我启动它时,我检索:

Exception in thread "main" jxl.write.biff.RowsExceededException: The maximum number of rows permitted on a worksheet been exceeded
    at jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:1214)
    at jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1151)
    at Pr1.main(Pr1.java:52)
Java Result: 1

我该如何解决?有可能我不能添加 21 行吗?这很奇怪……

4

2 回答 2

3

我从 JXL 库开始,并为这种类型的错误寻找一些解决方案,您在帖子标题中指出,我将在 21 行中为您的问题提供解决方案。

您有以下代码:

            for (int j = 0; j <tmp.length; i++) {
               sheet.addCell (new Label (j, i +1, tmp [j].toString ()));
            }

应该是:

            for (int j = 0; j <tmp.length; j++) {
               sheet.addCell (new Label (j, i +1, tmp [j].toString ()));
            }

有什么不同?好吧,你增加了 i 而不是 j,所以第二个循环永远不会结束。

我希望我已经帮助解决了你的问题。

祝你好运。

于 2012-08-16T18:24:57.403 回答
0

尝试使用Apache POI 库。使用起来更好。

于 2012-04-02T20:00:21.550 回答