2012-02-09 1 views
4

Excel propose l'option Sous-total dans le menu Data ->Outline ->Subtotal. Il crée automatiquement les sous-sommes et la possibilité de plier les données. L'image ci-dessous montre comment l'action transforme la feuille.Mettre en œuvre la fonctionnalité Sous-total d'Excel

enter image description here

Et c'est exactement ce que je dois faire via POI. Je sais comment définir une fonction de sous-total dans une cellule afin que je puisse calculer les sommes intermédiaires par moi-même. Mais comment puis-je activer ce pliage sur la bordure gauche? J'ai réalisé qu'il existe la méthode groupRow() mais ces groupes imbriqués ne fonctionnent pas comme ils le devraient. Si j'utilise le code suivant, je n'ai que deux groupes. Un grand (1-7) et (1-3). Le groupe (5-7) est manquant et changer l'ordre des appels n'a aucun effet.

sheet.groupRow(1, 7); 
sheet.groupRow(1, 3); 
sheet.groupRow(5, 7); 

Répondre

3

J'utilise un assez vieux verion de POI, mais voici comment je l'ai fait:
J'ai aussi besoin de plusieurs groupes imbriqués donc j'avais un modèle pour les lignes où le niveau de retrait a été stocké aussi bien (il était un arbre donc le retrait était implicite). J'ai traversé le modèle avec un visiteur pour obtenir le numéro de début et de fin de ligne du groupe. Puis appelé HSSFSheet.groupRow par la suite pour chaque groupe. Si je me souviens bien, l'ordre des appels de groupe est important.

+0

pourrait vous publiez une partie de votre code? Je n'arrive toujours pas à faire fonctionner ces groupes imbriqués. – Kai

+0

Voilà: http://pastebin.com/iFkUFX3q Ceci est saisi à l'extérieur du contexte, mais j'espère que c'est encore compréhensible. Sinon, je vais coller plus. Group et groupOH font la même chose pour différentes structures, donc l'une d'elles devrait suffire. – zeller

+0

Quoi qu'il en soit, si vous pensez que cela aiderait, je pourrais courir une génération avec la journalisation de tous les numéros de ligne groupés ensemble et post est quelque part avec une capture d'écran de la feuille. – zeller

Questions connexes