Apache POI xls colonne Supprimer
Je n'ai pas trouver comment faire pour supprimer une colonne avec l'Apache POI API.
J'aimerais avoir un exemple de code ou de l'aide sur ce point.
OriginalL'auteur | 2009-07-24
Vous devez vous connecter pour publier un commentaire.
Alan Williamson sur la liste de diffusion a écrit une petite aide pour la colonne de suppression
Pas mauvais, mais il ne fonctionne pas quand fusionné dans l'en-tête de colonne ou de l'endroit où
Juste un heads-up sur ce code, que certaines des fonctions utilisées sont désormais obsolète: "deleteColumn", au Lieu de la ligne".createCell( x-1, nextCell.getCellType() )", vous devez utiliser la ligne".createCell(x-1, nextCell.getCellTypeEnum());" Aussi, dans "cloneCell", modifier "cnouvelle.getCellType" pour "cnouvelle.getCellTypeEnum" et le cas de leurs nouveaux partenaires (aussi, l'ajout d'une "AUCUN cas").
OriginalL'auteur cporte
La réponse de cporte est parfaitement bien, mais à mon humble avis un peu dur à lire.
L'Idée:
Pour chaque ligne, supprimer la cellule représentant la colonne qui doit être supprimé et déplacer toutes les cellules à droite de cette colonne vers la gauche.
La Mise en oeuvre simplifiée:
Le clone méthode de cellules copiées à partir de la réponse à faire à l'exhaustivité:
pour y compris tous ligne, vous devez corriger cette ligne de
for(int rId = 0; rId < sheet.getLastRowNum(); rId++)
àfor (int rId = 0; rId <= sheet.getLastRowNum(); rId++)
Je l'ai mis à jour pour résoudre ce problème. J'ai sorte de me rappeler que j'avais corrigé ça dans mon code trop, mais j'ai oublié de le mettre à jour ici. alors merci de nous le signaler
OriginalL'auteur codewing
codewing la solution a fonctionné pour moi comme un charme avec les petites modifications suivantes:
Code complet est ci-dessous (pour plus de clarté):
OriginalL'auteur Hari Samala
Je pense que vous devez aller vers le bas de chaque HSSFRow et appel HSSFRow.getCell et puis HSSFRow.removeCell. L'API est orienté vers les lignes, plutôt que des colonnes, et très peu d'opérations de travail à l'ensemble de la colonne.
Code d'exemple (non testé):
Vous auriez alors besoin de changer toutes les cellules d'une colonne vers la gauche.
C'est bon pour la dernière colonne
OriginalL'auteur jsight