JXLS, Télécharger un fichier Excel
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:
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:
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();
}
} |