2011-09-19 7 views
2

셀을 가져 오는 중에 예외가 발생합니다.셀을 가져 오는 동안 nullpointerexception이 발생하는 이유

if(versionToAdd.equals("15.6")) {   
    Cell X = wb.getSheetAt(0).getRow(28+j).getCell((short)7); 
    Cell Y = wb.getSheetAt(0).getRow(28+j).getCell((short)8); 
    X.setCellValue(x); 
    Y.setCellValue(y); 
} 

는 루프 (J)에 대한 내부의 코드를, 나는 값의 목록을 반복 할 때마다, 나는 동적으로 새로운 세포를 얻을 : 이것은 내가 뭘하는지입니다.

문제는 첫 번째 col : row (H : 29)에 도달 할 때마다 NullPointerException이 발생한다는 것입니다.

참고 : xls 파일의 셀이 비어 있습니다 ... 문제 일 수 있습니까?

Cell cellx = row.getCell(8); 

자바 :


나는 그것을 읽기 시작하지만,이 값의 일정 금액에 도달 할 때마다, 나는이 라인에서 NullPointerException이 얻을, 자바 X/Y 값의 컬렉션을 가지고 목록 괜찮아요. X/Y 쌍 (예 : 5 또는 6 쌍)을 적게 넣으면 효과적이지만 특정 양 (예 :> 10)을 초과하면 예외가 발생합니다. 당신의 도움을 주셔서 감사합니다 사람들 :

은 세포를 찾는 시도, 모든


수정 됨 잘 될 것 같다! POI에서 XSSF/HSSF를 사용하기 시작했습니다. 이전에 그것을 사용하려고했지만, 제대로 실행하려면 얻을 수 없습니다,하지만 지금은 않았다 그리고 그것은 완벽하게 createRow-createCell 메서드를 사용하여 작동합니다 :

+1

이 문제를 디버깅하려는 경우 수행중인 것처럼 메서드 호출을 연결하지 마십시오. 어떤 메소드 호출이 실패했는지 파악하는 것이 더 어려워 질뿐입니다. 명령문을 별도의 줄에 놓은 다음 스택 추적에서 무엇이 null인지 알려 주어야합니다. –

+0

웹 응용 프로그램이므로 디버깅 방법을 모르겠다. 하하 : P – msqar

+0

아, 그 경우에는 웹 응용 프로그램 및 비 웹 응용 프로그램 방식으로 실행할 수 있도록 처리를 추출하십시오. 그게 당신의 애플 리케이션을 쉽게 테스트하게됩니다 :) –

답변

1

POI 설명서에 따르면 행을 요청하면 정의되어 있지 않으면 null이 리턴됩니다. 행에서 셀을 가져 오는 경우에도 마찬가지입니다. 행이나 셀이 존재하지 않는다고 가정합니다. 또한

getCell짧은 버전에 찬성되지 않습니다 것을 알 수 getCell 당신은 확인 getLastRowNum을 사용할 수 있습니다

POI Sheet

POI Row

(INT) 당신이 기대하는 행의 수가 존재한다는 것을 의미합니다. getLastCellNum에 대해서도 마찬가지입니다.

시트/행/셀을 만드는 경우 create 메소드를 사용해야합니다. get 메소드가 아닙니다.

Create Cell

사용자 설명서의 첫 번째 세 가지 항목

Create Row

은 다음과 같습니다, 시트를 만드는 방법, 세포를 만들 통합 문서를 만드는 방법. 질문을 게시하기 전에 설명서를 확인해야합니다.

POI Guide

+0

알아요,하지만 더 이상 HSSF를 사용하지 않습니다. 편집 및 재 작성 작업에서 문제가 없으므로 ... 사용하고 있습니다. import org.apache.poi.ss .usermodel.Cell; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; WorkbookFactory 때문에. – msqar

+0

이런 방식으로 모든 POI 클래스가 동일하게 작동합니다. 요점은 당신이 행이나 셀이 존재하고 그것이 존재하지 않는다고 가정하고 있다는 것입니다. 어떤 가정이 맞는지 판별하려면 추가로 디버깅을해야합니다. –

+0

그러나 어떻게이 셀을 만들 수 있습니까? X/Y 좌표의 값을 설정하려면이 셀을 만들어야합니다. – msqar

관련 문제