title: Apache-POI: Unable to write to an existing workbook
body: <p>I'm working on a project which needs to read an Excel Workbook, calls the necessary Web Services, and then takes the response from the webservices and enters that information in to the same Excel Workbook that was read.  </p>
  
  <p>Here is the error I'm seeing when trying to write to the Excel Workbook:</p>
  
  <pre><code>Exception in thread "main" org.apache.poi.POIXMLException: java.io.IOException: Can't obtain the input stream from /docProps/app.xml
  at org.apache.poi.POIXMLDocument.getProperties(POIXMLDocument.java:141)
  at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:177)
  at ext.ExcelProcessor.main(ExcelProcessor.java:197)
  Caused by: java.io.IOException: Can't obtain the input stream from /docProps/app.xml
      at org.apache.poi.openxml4j.opc.PackagePart.getInputStream(PackagePart.java:500)
      at org.apache.poi.POIXMLProperties.&lt;init&gt;(POIXMLProperties.java:75)
      at org.apache.poi.POIXMLDocument.getProperties(POIXMLDocument.java:139)
      ... 2 more
  </code></pre>
  
  <p>Here is my code for the opening of the file/reading:</p>
  
  <pre><code>pkg = OPCPackage.open(xslFile);
      theWorkbook = new XSSFWorkbook(pkg);
  </code></pre>
  
  <p>After this I read each row and extract each cell value.</p>
  
  <p>Once this is done I'll create the cells under the headers for Success and Result Message and then do the following:</p>
  
  <pre><code>String sessionData = sessionKey[1];
                  String[] cellValCurrRow = rowCellVals.get(r-1);
                  String attachmentData[] = WQSServices.uploadAttachment(sessionData, cellValCurrRow);
  
                  XSSFCell cell = xslRows[r].getCell(7);
  
                  if(cell == null)
                  {
                      cell = xslRows[r].createCell(7);
                  }
  
                  System.out.println("The Cell: "+cell.getStringCellValue());
  
                  XSSFCell cell2 = xslRows[r].getCell(8);
  
                  if(cell2 == null)
                  {
                      cell2 = xslRows[r].createCell(8);
                  }
  
                  System.out.println("The Cell: "+cell2.getStringCellValue());
  
                  cell.setCellType(Cell.CELL_TYPE_STRING);
                  cell2.setCellType(Cell.CELL_TYPE_STRING);
                  cell.setCellValue(attachmentData[0]);
                  cell2.setCellValue(attachmentData[1]);
  
                  System.out.println("New Cell Data: 1-"+cell.getStringCellValue()+" 2-"+cell2.getStringCellValue());
  
                  FileOutputStream fos = new FileOutputStream(xslFile);
                  theWorkbook.write(fos);
                  fos.close();
  </code></pre>
  
  <p>Has anyone ran in to similar issue?</p>