Bonjour,

J'utilise le JXLS pour générer un fichier XLS en faisant appel à une requête (JDBC).
J'ai développé le code suivant :
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
 
	public void export() throws SQLException {
		Connection con = null;
		Statement stmt = null;
		try {
			FacesContext facesContext = FacesContext.getCurrentInstance(); 
		    HttpServletResponse response = (HttpServletResponse)facesContext.getExternalContext().getResponse();
		    response.setContentType("application/octet-stream");
            facesContext.responseComplete();
            response.reset(); 
			response.setBufferSize(900240); 
			response.setHeader("Content-Disposition", "attachment; filename=myexcel.xls");
 
            ServletOutputStream os = response.getOutputStream();
            ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
            String absoluteDiskPath = servletContext.getRealPath("/resources/");
 
            Class.forName("oracle.jdbc.driver.OracleDriver");
			con =DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "user", "123456789");
			stmt = con.createStatement();
 
			String query = "SELECT id,nom,prenom FROM Transaction";
 
			ResultSet rs = stmt.executeQuery(query);
 
			Map beans = new HashMap();
	        RowSetDynaClass rsdc = new RowSetDynaClass(rs,true);
	        beans.put("Transaction", rsdc.getRows());
            XLSTransformer transformer = new XLSTransformer(); 
            Workbook workbook = transformer.transformXLS(new FileInputStream(absoluteDiskPath + "/template.xls"), beans);
            workbook.write(os);
            os.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
		finally{
			if(con != null)
				con.close();
			if(stmt != null)
				stmt.close();
		}
    }
Le code ne BUG pas et ne donne aucune erreur, mais je n'arrive pas à télécharger le fichier XLS, aucune POP-UP n’apparaît pour me demander où je veux enregistré le fichier
j'ai déjà utilisé ce Code et j'ai donné un chemin absolut et ça a marché, mais à cause que l'application est WEB, je peux pas définir un chemin absolut :/
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
 
	public static void main(String[] args) throws SQLException, ParsePropertyException, InvalidFormatException, IOException {
 
		Connection con = null;
		Statement stmt = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con =DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "user", "123456789");
			stmt = con.createStatement();
 
			String query = "SELECT id,nom,prenom FROM Transaction";
	        ResultSet rs = stmt.executeQuery(query);
	        @SuppressWarnings("rawtypes")
			Map beans = new HashMap();
 
	        RowSetDynaClass rsdc = new RowSetDynaClass(rs,true);
	        beans.put("Transaction", rsdc.getRows());
 
	        XLSTransformer transformer = new XLSTransformer();
	        transformer.groupCollection("Transaction.projet");
	        transformer.transformXLS( "src\\template.xls", beans,"E:\\Destinations.xls");
 
	        System.out.println("FINISH CHECK : E:\\Destinations.xls");
 
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally{
			if(con != null)
				con.close();
			if(stmt != null)
				stmt.close();
		}
	}