IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

joel.drigo

Tiens un autre tip Apache POI...

Noter ce billet
par , 13/12/2016 à 01h05 (905 Affichages)
C'est une feature ce coup-ci, mais pas documentée, au sujet des Hyperlink de type fichier (HyperlinkType.FILE). On trouve bien un exemple, mais le lien est un nom simple. J'ai dû chercher pendant un moment avant de comprendre comment faire pour indiquer un chemin relatif (au fichier Excel) obtenu à partir d'une variable de type Path (ou File, éventuellement) ?

On serait tenté d'écrire, avec une variable path de type Path, contenant un chemin relatif :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
hyperlink.setAdresse(path.toString());
Et ça ne fonctionnerait pas sur Windows... on obtiendrait une exception d'URI malformée. Parce que s'il y a des antislashes dans l'adresse, POI considère le chemin comme étant celui d'une URI, et utilise la classe URI pour le vérifier, d'où l'exception.

Pour un chemi absolu, on peut écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
hyperlink.setAdress(path.toUri().toString());
Mais évidemment, pour un chemin relatif, cela ne fonctionne pas (enfin si, mais ça fait la résolution du chemin absolu par rapport au chemin par défaut, et donc pas forcément avec le chemin du fichier Excel), et on obtient donc un lien absolu. Il suffit de remplacer les antislashes par des slashes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
hyperlink.setAdress(path.toString().replace('\\','/');
et hop, un chemin relatif...

Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Viadeo Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Twitter Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Google Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Facebook Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Digg Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Delicious Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog MySpace Envoyer le billet « Tiens un autre tip Apache POI... » dans le blog Yahoo

Commentaires