我試圖將信息附加到現有的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 eption at jxl.write.biff.Styles.getFormat(Styles.java:214) at jxl.write.biff.CellValue.addCellFormat(CellValue.java:468) at jxl.write.biff.CellValue.setCellDetails(CellValue的.java:282) 在jxl.write.biff.LabelRecord.setCellDetails(LabelRecord.java:216) 在jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1199) 在ExcelOperations.WriteToDoc(ExcelOperations.java :149) 在ChequeImage.main(ChequeImage.java:174)
注意:唯一的例外似乎在線路是發生 「appendingSheet.addCell(標籤);」。
感謝您的幫助。
編輯1:下圖顯示了執行「appendingSheet.addCell(label)」前的appendingSheet的內容。我不完全確定它代表什麼,但它似乎並不是零。
'appendingSheet'實例在'AppendToDoc'方法中初始化並且僅限於該方法。將'WriteToDoc'的'NPE'作爲'appendingSheet'使'null.' – Smit
同時顯示調用這些方法的代碼會很有幫助。 –
@Smit appendingSheet是一個全局變量。即使它在AppendToDoc中初始化,即使在AppendToDoc完成之後,該值仍然存在? – Hypaa