Comment faire pour supprimer le contenu d'une feuille Excel dans Java?
Comment faire pour supprimer le contenu d'une feuille Excel dans un classeur Excel, à l'aide de Java SE et Apache POI?
- vous voulez supprimer les données dans le classeur?
- Nan, juste que tout le contenu de l'actuel HSSFSheet
- avez-vous eu la réponse que vous cherchez?
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans les commentaires précédents
ce code jeter ConcurrentModificationException pour moi. Donc, j'ai modifié le code et ça fonctionne. Voici le code:
J'ai trouvé que removeSheetAt/createSheet n'est pas vraiment une réponse acceptable, parce que vous ne pouvez pas mettre la nouvelle feuille dans la position correcte dans le classeur sans tomber sur un bug dans Feuille de calcul.setSheetOrder
Cet extrait de code
dans mon monde jette un
ConcurrentModificationException
J'ai dû recourir à
Selon ce contenu que vous souhaitez supprimer vous pouvez supprimer une seule cellule ou une ligne.
Trop effacement complet de la feuille de itérer plus de toutes les lignes et les supprimer.
Je sais que c'est un vieux thread mais je crois que j'ai trouvé la meilleure solution
Ce que j'ai fait était juste de créer un nouveau classeur de même type et de l'enregistrer sur le fichier que je voulais supprimer.
Heres le code
Vous voudrez probablement utiliser
HSSFWorkbook.removeSheetAt(index)
.HSSFWorkbook.createSheet()
, que votre réponse sera apte à Sumon besoins =DJ'ai aussi eu des modifications concurrentes exception, également à l'aide de la plus "moderne" façon de faire :
L'itérateur en fonction de la solution de @Thirupathi S apparemment travaillé, mais pour des raisons que je ne sais pas exactement, c'était la création de xslx fichiers ne sont pas lisibles par Apple Numéros et OSX aperçu (et probablement d'autres logiciels de trop).
Je soupçonne que cela a quelque chose à voir avec l'itérateur ne pas enlever quelque chose: le code de la removeRow méthode est plus complexe que la simple itérateur opération de suppression.
À l'aide de vieux plaine-boucle avec inversée index a fonctionné comme un charme :
Cette solution fonctionne très bien avec moi. Et aussi envisager des cas spéciaux, par exemple, la feuille est vide, ou les espaces entre les firstRow et lastRow sont présents.
Je suppose que c'est un vieux thread mais je reçois aussi des ConcurrentModificationException. Basé sur VoiceOfUnreason j'ai trouvé que cela fonctionne:
L'autre itérateur méthodes est apparu à travailler mais Excel puis a refusé d'ouvrir le fichier.
Cette une a fonctionné pour moi: