La copie des Feuilles de calcul Excel dans PVE
Quelqu'un sait-il d'un moyen pour copier une feuille de calcul d'un classeur à un autre à l'aide de POI? Le Classeur de la classe a un cloneSheet méthode, mais il ne semble pas être en mesure d'insérer un clone de la feuille dans un nouveau classeur?
Si il n'y a pas une API pour le faire facilement, quelqu'un aurait-il le code pour copier toutes les données (les styles, les largeurs de colonnes de données, etc) à partir d'une feuille à l'autre?
La jxls a des méthodes pour copier des feuilles, mais elles ne fonctionnent pas lors de la copie d'entre classeurs.
- Cette lien devrait être utile:
- que le lien que j'ai trouvé lorsque j'ai été googler. J'ai fait face à un problème avec le code donné dans le lien, lorsque la cellule est groupées des colonnes comme A1:A4, il indique une erreur comme chevauchement fusionné Région, je ne peux pas poster une réponse dans ce lien. Son vraiment bon.
Vous devez vous connecter pour publier un commentaire.
j'ai mis en œuvre certaines fonctionnalités avec pi. veuillez voir le code pour votre référence.
J'ai créé un workitem pour NPOI: http://npoi.codeplex.com/WorkItem/View.aspx?WorkItemId=6057.
Mise à jour: Le workitem est mis en œuvre dans NPOI 2.0. Vous pouvez télécharger NPOI 2.0 à partir de https://npoi.codeplex.com/releases/view/112932
Si vous utilisez Java PI bibliothèque le mieux serait de charger la feuille de calcul en mémoire,,, puis en créer un nouveau et écrire chacun des dossiers que vous souhaitez copier... pas la meilleure façon mais acomplishes la fonction de copie...
J'ai mis environ une semaine d'effort à faire avec POI (à l'aide de la dernière version du code sur coderanch) - être averti que le code est erroné (il y a un problème avec l'utilisation de TreeSet où vous avez besoin de la remplacer avec une table de hachage), mais même après la fixation de la il se bloque sur les formules.
Alors qu'il peut être possible de le faire, c'est effrayant une proposition d'avoir à compter sur piraté code.
En fonction de vos besoins/budget, vous pourriez envisager de mordre la balle et de payer pour aspose - http://www.aspose.com/doctest/java-components/aspose.cells-for-java/copy-move-worksheets-within-and-between-workbooks.html
Il copiés avec succès les feuilles y compris la mise en forme, formules, & règles de protection. J'ai fait 300 feuilles en 130 secondes. (300 x 90kb classeurs, compilées dans un 15mo classeur). La démo est gratuite, il met juste une feuille dans le classeur, vous rappeler d'acheter une licence.
C'est ma mise en œuvre de la copie des feuilles d'un classeur à un autre. Cette solution fonctionne pour moi. Ce code ne fonctionnera que si les feuilles n'ont pas de tables, etc. Si les feuilles contiennent de texte simple (String, boolean, int, etc), des formules, cette solution fonctionne.
Si votre exigence est de copier les draps de lit, sans quitter ou d'ajouter quoi que ce soit. Je pense que Le processus d'élimination, il fonctionne mieux et plus vite, puis le code ci-dessus. Et vous n'avez pas à vous inquiéter de perdre des formules, des dessins, des tableaux, des styles, les polices, etc.
Le meilleur moyen est d'ouvrir le fichier et le charger.
Si vous voulez quelque chose de spécifique feuilles à partir du fichier source Excel, puis vous devrez supprimer la fiche ne correspond pas à l'intention de la Feuille.
essayez ceci:
Cela devrait aider à clarifier