Bonjour,
Je suis confronté à un nouveau problème, je dois crée un export d'une datatable vers un fichier excel (j'utilise jexcel api).
Je pense avoir fait ce qu'il fallait par rapport a tout ce que j'ai pu trouver sur le net, mais mon fichier s'affiche en binaire dans ma page au lieu de proposer le téléchargement. Je pense a un problème du coté des header http et du faces context (peut etre un pb de navigation) mais je ne vois pas.
Voici mon code :
Toute idée sera la bienvenue.
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
26
27
28
29
30
31
32 FacesContext context = FacesContext.getCurrentInstance(); ExternalContext ec = context.getExternalContext(); HttpServletResponse response = (HttpServletResponse) ec.getResponse(); response.reset(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=export.xls"); response.setHeader("Content-Transfer-Encoding", "binary"); ServletOutputStream sop = null; WritableWorkbook workbook = null; try { sop = response.getOutputStream(); workbook = Workbook.createWorkbook(sop); } catch (IOException e1) { e1.printStackTrace(); } //********************* // remplissage du fichier excel //********************* try{ workbook.write(); workbook.close(); sop.flush(); sop.close(); context.responseComplete(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); }
Partager