Bonjour,
J'ai utilisé la plupart des solutions proposé dans le forum pour le telechargement du fichier excel, le téléchargement se passe bien quand j'ouvre le fichier excel, je trouve le code html de ma page et avec ce que je voulais ecrire sur le fichier, voici le bou de code utilisé :
dés fois le fichier est vide, sachant que le tableau headers est bien initialisé
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 HSSFWorkbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("affretements valo"); Row rowHead = sheet.createRow((short) 0); for (int i = 0; i < headers.length; i++) { rowHead.createCell(i).setCellValue(headers[i]); } int numLigne = 1; for (Iterator<AffretementVO> iterator = this.listAffretements.iterator(); iterator.hasNext();) { AffretementVO type = iterator.next(); Row rowData = sheet.createRow((short) numLigne); if (StringUtil.isEmptyOrSpaces(type.getSousTraitant())) { rowData.createCell(0).setCellValue(""); } else { rowData.createCell(0).setCellValue(type.getSousTraitant()); } if (StringUtil.isEmptyOrSpaces(type.getNomConducteur())) { rowData.createCell(1).setCellValue(""); } else { rowData.createCell(1).setCellValue(type.getNomConducteur()); } if (StringUtil.isEmptyOrSpaces(type.getImmatCamion())) { rowData.createCell(2).setCellValue(""); } else { rowData.createCell(2).setCellValue(type.getImmatCamion()); } } HttpServletResponse response = JSFContext.getResponse(); response.reset(); ServletOutputStream sos; try { response.setHeader("Cache-Control", "max-age=1"); response.setHeader("Content-Disposition", "attachment; filename=\"InventoryErrorReportServlet.csv\""); response.setContentType("application/vnd.ms-excel"); sos = response.getOutputStream(); sos.write(wb.getBytes()); sos.close(); } catch (IOException ioe) { System.out.println("IO Exception: " + ioe.toString()); } response.getOutputStream().close();
Partager