Bonjour,
J'aurais aimé savoir si c'était possible d'inserer une image dans un fichier excel grace à POI sachant que si je veux modifier un fichier xls ayant déjà une image,POI n'arrive plus à lire le fichier.
Merci d'avance
Bonjour,
J'aurais aimé savoir si c'était possible d'inserer une image dans un fichier excel grace à POI sachant que si je veux modifier un fichier xls ayant déjà une image,POI n'arrive plus à lire le fichier.
Merci d'avance
Bonjour, je reponds a ce post que j'ai trouvé en cherchant une chose similaire et je pose une question dans la foulée :
Avec la version 3 de POI on peut ajouter une image (pas avant si je dis pas de bétise)
la doc ici
voila, ne faites pas copier coller de ce code, ca ne marchera pas, j'ai fais ça de tête, il manque la gestion des exceptions, les verifications de fichiers ect ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 // création d'un nouveau workbook HSSFWorkbook leBook = new HSSFWorkbook(); // création d'un onglet ayant pour nom "mon onglet" HSSFSheet leSheet = leBook.createSheet("mon onglet"); // Créé le patriarch qui est le container de toutes les formes (en gros "de tous éléments") de la page // attention, si un patriarch existe il est detruit et remplacé par un nouveau vide // comprendre, si il existe déjà un ou plusieurs graphiques, images ou autres , ils sont tout bonnement suprimmés et c'est la mon problème ( voir plus loin) HSSFPatriarch lePatriarch = leSheet.createDrawingPatriarch(); // là où vous aller "encrée votre image" je vous fais grace des paramètres HSSFClientAnchor anchor = new HSSFClientAnchor(...); // je lis l'image et le mais dans un byte array FileInputStream file = new FileInputStream("src/ressources/images/monImage.png"); ByteArrayOutputStream array = new ByteArrayOutputStream(); array.write(file.read); // j'ajoute cette image dans le workbook et recupere un index l'identifiant int index = leBook.addPicture(array,HSSFWorkbook.PICTURE_TYPE_PNG); // finalement j'ajoute l'image au patriarch lePatriarch.createPicture(anchor , index );
j'en viens a mon problème.
pour ajouter une image, il faut recuperer un patriarch. le seul moyen que j'ai trouver est de le creer dans l'objet HSSFSheet hors il detruit l'ancien si présent.
Dans un de mes programmes je me base sur un fichier xls source, que je monte en memoire puis modifie via POI.
Le problème est que mon fichier source contient déjà des graphiques et images (généré via un autre prog en parralèle). si je me sert de la methode createPatriarch() montré si dessus, je perd tous ces éléments.
Quelqun connait t'il un moyen de recuperer un patriarch existant?
Il y a bien une méthode getPatriarch() dans la classe EchedAggregate (pas sur de l'orthographe) mais impossible de récuperer cette instance donc si quelqun connait ca m'interresse aussi.
Merci d'avance.
As-tu résolu ton problème?
Je suis dans le même cas et après recherche je n'ai pas trouvé de solution.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager