Créer un graphique excel à l'aide d'Apache POI
J'ai besoin de créer une feuille excel à partir de mon code Java qui contient des diagrammes comme un graphique à barres, Graphique, etc à l'aide de l'Apache POI bibliothèque.
Est-il possible?
Je ne suis pas capable de trouver un utile exemple de code pour le même.
Est-il une autre alternative pour les ce en dehors de POI bibliothèque Java?
Voici un tutoriel qui explique comment créer un graphique dans Excel, avec PI / JFreeChart en Java.
OriginalL'auteur javdev | 2010-07-28
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez utiliser le modèle Excel pour préserver graphique avec PI.
Cela signifie que vous créez un fichier de modèle Excel avec graphique dans le lien et le graphique de la source de données à un definedName,puis charger le fichier de modèle de POI et en utilisant le code pour modifier la definedName.
Actuel POI ne supporte pas de créer un Graphique à partir de zéro.
Mais je suis confronté problème suivant: Après l'enregistrement avec succès une plage nommée dire "testrange", lorsque je clique sur une autre cellule de la feuille, puis vérifiez à nouveau la formule de "testrange", il obtient du jeu. par exemple, si j'ai enregistrer en tant que "=DECALER(A1,,,NBVAL(A:A),2)", puis cliquez sur une autre cellule. Maintenant, si à nouveau la formule de "testrange' il est indiqué quelque chose comme: "=DECALER(Feuil1!XFB11,,,NBVAL(Feuil1!XFB:XFB),2)" et cela change à chaque fois que je le vérifie. Je suis confronté à ce problème dans Excel 2003 et 2007. Veuillez suggérer si je fais quelque chose de mal dans la définition de la dynamique de la plage nommée.
Votre formule utiliser l'adresse relative,s'il vous plaît essayer de l'adresse absolue DECALER($A$1,,,Count($A$A),2)
merci beaucoup pour l'info sur les plages nommées. Vous m'a sauvé beaucoup de temps et d'efforts.
OriginalL'auteur liya
Poi-3.8 support pour les cartes semble être à venir.
Voir cette discussion.
Et, en particulier, l'exemple.
OriginalL'auteur prule
Il y a quelques autres bibliothèques aussi, mais je ne suis pas sûr si le peut écrire une telle chose comme un tableau.
Si vous pouvez utiliser les nouvelles versions d'Office (ceux qui utilisent le XML en fonction du format de fichiers), que vous pourriez utiliser une approche différente:
Je sais que les étapes ci-dessus à l'air un peu compliqué, mais si vous n'avez pas trop compliqué fichiers Excel, il devrait être plus facile que ça en a l'air.
Quelques autres excel libs: jexcelapi.sourceforge.net , sourceforge.net/projects/openxls , xlsql.dev.java.net, qu'il y a beaucoup de Java COM ponts qui permettent d'utiliser un fichier Excel directement l'installation de Java, par exemple, danadler.com/jacob (mais il y a beaucoup d'autres). Une autre option est d'utiliser OpenOffice (car il est assez facile de code de l'API de Java) et laissez OpenOffice exporter vos résultats selon le format Excel.
OriginalL'auteur Adrian A.
Le fil de l'air vieux et je ne sais pas si vous l'avez déjà compris, d'une façon ou sont toujours à la recherche d'un.
Mais voici ce que je ferais. Il y a une bibliothèque appelée JFreeChart. Vous pouvez l'utiliser pour générer un fichier JPG ou PNG fichier que vous pouvez ensuite insérer dans un fichier excel lorsque vous créez avec Apache POI.
Mais l'inconvénient de cette méthode est que les données dans le graphique ne va pas changer dynamiquement lorsque vous modifiez les données dans la feuille de calcul comme c'est le cas avec Excel. Maintenant que c'est quelque chose que je ne peux pas vivre avec.
Donc je vais faire un peu de recherche maintenant. Je suis assez sûr que, puisque la question a été posée il doit y avoir un ajout d'une fonctionnalité dans Apache POI ou une autre manière de faire les choses. Si je trouve un je ne manquerai pas de poster mes résultats ici.
---- Mise à JOUR ----
Dans ma recherche d'une durée d'environ une heure, je n'ai pu trouver celle qui convient bibliothèque appelée SmartXLS (merci google, je ne pouvais pas poster le lien, parce que je suis un newbie et le spam mécanisme de prévention des coups de pied dans) qui est de près ou de loin à ce que j'allais utiliser. Vous pouvez générer à la fois de l'excel et le graphique à partir d'un programme. Le site est très simple et je ne pouvais pas trouver toutes les informations sur les licences, donc je suis en supposant qu'il est gratuit pour un usage personnel et commercial. J'ai pu télécharger la bibliothèque sans aucun problème. Je n'ai pas encore utilisé. Donner un coup de feu, et laissez-nous savoir comment cela fonctionne.
Fondamentalement, j'ai utilisé poi pour vider les données dans le fichier excel et utilisé macro Excel pour créer des graphiques à partir des données chaque fois que excel est ouvert la première fois.
Pouvez-vous peut-être poster un extrait de la macro que vous utilisez dans excel pour créer le graphique? Je suis assez sûr que je peux google. Voyant que vous avez une solution, je préfère demander à vous et gagner du temps que de réinventer la roue. Merci pour la réponse.
OriginalL'auteur Karthic Raghupathi
Ce sera extrêmement compliqué de le faire à partir de zéro, vous aurez à comprendre ce qui doit aller dans le fichier Excel pour créer des tableaux. Je voudrais aller un itinéraire différent.
Créer un fichier Excel qui comprend une macro qui crée un Graphique à barres, etc pour certaines données (à l'aide d'Excel dans la manière habituelle). Ensuite, utilisez Apache POI pour créer un fichier avec les données que vous voulez et commencez à Excel à partir de Java, l'exécution de la macro qui crée les cartes.
Je suis sûr que c'est, mais vous devez savoir exactement ce qu'est un fichier contenant les graphiques ressemble. Je voudrais encore créer un exemple avec Excel et de les reproduire à l'aide de POI. Les spécifications complètes de la xlsx fichiers sont disponibles, mais extrêmement compliqué.
OriginalL'auteur DJClayworth
Ici est l'exemple de travail.
J'ai des données en JSON, et .xlsm fichier de modèle à la macro. - pas de graphique, de données ou le nom de la gamme nécessaire dans excel
Clones de la feuille de modèle à chaque fois qu'il faut créer une feuille de graphique, des lieux obligatoire type de graphique à z1 et modifier la valeur par défaut de la ligne graphique qui a été inséré pour le type de graphique approprié. Supprime un type de graphique, de z1 à éviter l'exécution de plusieurs.
Espère que cela aide.
OriginalL'auteur Sumant