2012-04-02 1 views
0

자바에서 앱을 개발 중이며 JXL 라이브러리를 사용하고 있습니다.피하는 방법 워크 시트에서 허용되는 최대 행 수를 초과했습니다. jxl의 예외

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 

내가 그것을 어떻게 해결할 수 :

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(); 
    } 

이 내가 검색을 실행하면 : 그래서 난이 시도? 21 행을 추가 할 수 없다는 가능성이 있습니까? 매우 이상합니다 ...

답변

0

시도해보십시오 Apache POI library. 사용하는 것이 좋습니다.

+0

나는 아무도 내가 여기에 대답하지 않는 것을 보았을 때의 해결책이다 :) thanks !!! – JackTurky

2

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())); 
      } 

의 차이점은 무엇입니까? 글쎄, 당신은 j 대신 i를 증가 시키므로 두 번째 사이클은 끝나지 않습니다.

나는 귀하의 문제를 해결하는 데 도움이되기를 바랍니다.

행운을 빈다.

관련 문제