Чтение / запись с помощью Apache POI

Недавно я начал использовать Apache POI для чтения и чтения Excel, и у меня проблема. У меня есть кнопка отправки кнопки чтения текстовых полей и печать ее в файл excel:

HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Reservations"); Map<String, Object[]> data = new TreeMap<String, Object[]>(); data.put("1", new Object[] {"Reservation ID", "NAME", "ARRIVAL DATE", "LENGTH OF STAY","HOME ADDRESS", "EMAIL", "PHONE NUMBER" ,"RESERVATION TYPE"}); data.put("2", new Object[] {1, advanceLastField.getText(), arrivalDateForm.getText(), stayNum.getText(),advanceAddressForm.getText(), advanceEmailForm.getText(),advancePhoneForm.getText(),"D"}); Set<String> keyset = data.keySet(); int rownum = 0; for (String key : keyset){ Row row = sheet.createRow(rownum++); Object [] objArr = data.get(key); int cellnum = 0; for (Object obj : objArr){ Cell cell = row.createCell(cellnum++); if(obj instanceof String) cell.setCellValue((String)obj); else if(obj instanceof Integer) cell.setCellValue((Integer)obj); } } try{ FileOutputStream out = new FileOutputStream(new File("testSheet.xls"),true); workbook.write(out); out.close(); System.out.println("Advance Reservation succesfully written"); }catch (Exception e){ e.printStackTrace(); } } } }catch(NumberFormatException e){ parsable1=false; } 

Это работает правильно, но моя проблема пытается ОБНОВИТЬ лист excel впоследствии. Это мой код обновления:

  FileInputStream inp = new FileInputStream(new File("testSheet.xls")); HSSFWorkbook wb = new HSSFWorkbook(inp); HSSFSheet sheet = wb.getSheetAt(0); if(idLookup.getText() == "1"){ if(updateNameForm.getText()!= null){ Row row = sheet.getRow(1); Cell cell = row.getCell(1); cell.setCellType(CellType.STRING); cell.setCellValue(updateNameForm.getText()); } } FileOutputStream fileOut = new FileOutputStream("testSheet.xls",true); wb.write(fileOut); fileOut.close(); 

Может ли кто-нибудь дать мне немного понимания или руководства? Благодаря!

    Вы добавляете данные в файл. Я предполагаю, что вы хотите воссоздать лист.

     public FileOutputStream(String name, boolean append) throws FileNotFoundException 

    append – если true, то байты будут записываться в конец файла, а не в начало

    Кроме того, не забудьте закрыть входной поток перед повторным использованием файла

     inp.close(); FileOutputStream fileOut = new FileOutputStream("testSheet.xls"); wb.write(fileOut); fileOut.close(); 
    Давайте будем гением компьютера.