无法使用Apache POI ss用户模型添加工作表

我试图添加表与Apache POI,但是我得到空指针exception,当我试图保存excel。不知道为什么发生这种情况,但数据更新到Excel发生完美。

发生exception: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()); } } 

问题已修复

 if(fileExtn.equals("xlsx")){ workbook = (XSSFWorkbook) WorkbookFactory.create(new FileInputStream(path)); }else if(fileExtn.equals("xls")){ workbook = (HSSFWorkbook) WorkbookFactory.create(new FileInputStream(path)); }