0
我想用Apache POI添加工作表,但是當我嘗試保存excel時收到空指針異常。不確定爲什麼會發生這種情況,但數據更新爲excel發生完美。無法使用Apache POI ss用戶模型添加工作表
異常: org.apache.poi.POIXMLException:顯示java.lang.NullPointerException
public XL_ReadWrite(String path) throws Exception{
this.path = path;
try{
fin = new FileInputStream(path);
workbook = WorkbookFactory.create(fin);
sheet = workbook.getSheetAt(0);
fin.close();
} catch(FileNotFoundException e){
throw new Exception("Exception occurred while finding the file : " + path + " while XLS initialize .Exception details : "+e.getMessage());
} catch(IOException e){
throw new Exception("I/O interrupted exception occurred while XLS initialize .Exception details : " + e.getMessage());
} catch(Exception e){
throw new Exception("Exception occurred while XLS initialize .Exception details : "+ e.getMessage());
}
}
public void addSheet(String sheetName) throws Exception{
File file = new File(path);
String fileExtn = Globals.GC_EMPTY;
workbook = null;
if (file.exists()) {
try {
fileExtn = FilenameUtils.getExtension(file.getAbsolutePath());
if(fileExtn.equals("xlsx")){
workbook = (XSSFWorkbook) WorkbookFactory.create(file);
}else if(fileExtn.equals("xls")){
workbook = (HSSFWorkbook) WorkbookFactory.create(file);
}
sheet = workbook.createSheet(sheetName);
}catch (InvalidFormatException e) {
throw new Exception("InvalidFormatException occurred while adding sheet : " + sheetName + ". Exception details : "+e.getMessage());
}catch(IOException e){
throw new Exception("IOException occurred while adding sheet : " + sheetName + ". Exception details : "+e.getMessage());
}
}
else{
throw new FileNotFoundException("Error : " + path + " not found");
}
}
public void saveXL() throws Exception{
try{
fout = new FileOutputStream(path);
this.workbook.write(this.fout);
this.fout.close();
}catch(Exception e){
throw new Exception("Exception occurred while saving excel. Exception details :" +e.getMessage());
}
}
爲什麼你認爲這是需要呢?爲什麼不使用WorkbookFactory並讓它自動檢測? – Gagravarr