Bonjour,
Je souhaite récupérer le contenu d'un document excel créé avec JExcel pour l'envoyer par mail.
La classe java utilisée, fonctionne avec Struts et contient 3 méthodes :
- méthode private getJxl qui retourne un ServletOutputStream contenant le document
- méthode public qui fait appel à getJxl et permet de télécharger le documents > cette methode fonctionne, ce qui signifie que le contenu retourné par getJxl est correct
- méthode public qui envoit le document par mail, cette méthode envoit bien le document mais celui-ci est vide
L'envoi de mail se fait par une classe perso, celle-ci prend comme argument un tableau de bytes, un type de contenu et un nom de fichier.
Lorsque, en debug, je passe sur getJxl, le contenu du document est affiché à l'écran et le mail (avec un document vide) est envoyé.
Je ne suis pas sûr de moi sur l'utilisation des instructions flush et close,
et ai essayé plusieurs variantes mais avec le même résultat.
Je ne comprends pas pourquoi le document est vide et pourquoi son contenu est affiché à l'écran (page web).
Merci de m'avoir lu.
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 ServletOutputStream sos = getJxl(request, response); ByteArrayOutputStream baos = new ByteArrayOutputStream(); baos.writeTo(sos); sos.flush(); sos.close(); byte[] data = baos.toByteArray(); baos.flush(); baos.close(); MaClasseMailPerso mail = new MaClasseMailPerso(); // garnir subject, text, sender mail.addAttachment(data, "application/vnd.ms-excel","monfichier.xls"); mail.send();
Partager