"Apache POI: Impossible d'écrire sur un classeur existant

Je travaille sur un projet qui a besoin de lire un Classeur Excel, appelle le nécessaire des Services Web, et prend alors la réponse de la webservices et entre cette information dans le même Classeur Excel qui a été lu.

Voici l'erreur que je vois lorsque vous tentez d'écrire dans le Classeur Excel:

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.<init>(POIXMLProperties.java:75)
    at org.apache.poi.POIXMLDocument.getProperties(POIXMLDocument.java:139)
    ... 2 more

Voici mon code pour l'ouverture de dossier/lecture:

pkg = OPCPackage.open(xslFile);
    theWorkbook = new XSSFWorkbook(pkg);

Après ce que j'ai lu chaque ligne et extraire chaque valeur de cellule.

Une fois que ceci est fait, je vais créer des cellules sous les en-têtes pour la Réussite et le Message de Résultat et puis effectuez les opérations suivantes:

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();

Quelqu'un a couru vers problème similaire?

ce que les fichiers jar-vous ajouter?avez-vous ooxml fichier jar inclus dans le classpath?
Dans mon référencé bibliothèques dans Eclipse, j'ai le texte suivant: poi-3.8-20120326.jar poi-examples-3.8-20120326.jar poi-excelant-3.8-2012032.jar poi-ooxml-3.8-2012326.jar poi-ooxml-schemas-20120326.jar
k ce sujet dom4j-1.6.1.jar star-api-1.0.1.jar et xmlbeans-2.3.0.jar fichiers? Je crois que ce sont les dépendances de poi-ooxml fichiers jar
Voulez-vous dire stax-api-1.0.1.jar si oui, je les ai tous les 3.
[Solution pour mon problème qui fixe mes problèmes][1] [1]: stackoverflow.com/a/9792406/1231715

OriginalL'auteur Matthew Lancaster | 2013-01-02