정보를 기존 Excel 파일에 추가하려고하지만 java.lang.NullPointerException을 계속 수신합니다. 아래의 코드 및 예외 메시지를 참조하십시오.기존 Excel 파일에 정보를 추가 할 때 java.lang.NullPointerException이 발생합니다.
코드 :
private WritableSheet appendingSheet;
private static File report;
public void AppendToDoc (String path) throws IOException, WriteException, BiffException {
this.inputFile = path;
report = new File(inputFile);
Workbook appendingWorkbook = Workbook.getWorkbook(new File(inputFile));
WritableWorkbook copy = Workbook.createWorkbook(new File("output.xls"),appendingWorkbook);
appendingSheet = copy.getSheet("Sheet 1");
}
public void WriteToDoc (int option, String testName, String execDate, String time, boolean status) throws RowsExceededException, WriteException, IOException, BiffException{
int startingRow = NumOfRows(this.inputFile) + 1; //I have a function which finds the number of existing rows in the existing document. It works.
Label label = new Label(1, startingRow, "hello", times);
appendingSheet.addCell(label);
}
국가 번호 :
AppendToDoc("C:/Users/smith/ExcelTestFile.xls");
WriteToDoc(2, "This is a test", "executed", timeStamp, true);
예외 메시지 : "주"스레드
예외 java.lang.NullPointerExc jxl.write.biff.Styles.getFormat (Styles.java:214) 에서 jxl.write.biff.CellValue.addCellFormat (CellValue.java:468) 에서 jxl.write.biff.CellValue.setCellDetails (CellValue 된 .java 282) jxl.write.biff.LabelRecord.setCellDetails (LabelRecord.java:216) ExcelOperations.WriteToDoc에서 jxl.write.biff.WritableSheetImpl.addCell (WritableSheetImpl.java:1199) 에서 에서 (ExcelOperations.java : ChequeImage.main (ChequeImage.java:174 149) )
참고 "appendingSheet.addCell (레이블);"예외는 줄에서 일어나고있는 것으로 보인다.
도움 주셔서 감사합니다.
수정 1 : 아래 이미지는 "appendingSheet.addCell (label)"이 실행되기 직전에 appendingSheet의 내용을 보여줍니다. 나는 그것이 무엇을 대표하는지 정확히 모르겠지만 그것은 certianly null이 아닌 것 같습니다.
음'appendingSheet' 인스턴스는'AppendToDoc' 메소드에서 초기화되고 그 메소드로만 제한됩니다. 'AppendingSheet'가'WriteToDoc'을위한'NPE'를'null '로 만듭니다. – Smit
이 메소드들을 호출하는 코드를 보여 주면 도움이 될 것입니다. –
@Smit appendingSheet는 전역 변수입니다. AppendToDoc에서 초기화 되었더라도 AppendToDoc이 no로 끝난 후에도 여전히 값이 남아 있습니까? – Hypaa