Ouverture fenêtre excel - Java - Programmation
Marsh Posté le 08-09-2005 à 11:27:05
Essaye ça :
response.setContentType("application/vnd.ms-excel" ) ;
response.setHeader("Content-Disposition","attachment; filename=Mon_fichier.xls" );
// on ouvre un flux et on ecrit le tableau dedans
PrintWriter out = new PrintWriter( response.getOutputStream() ) ;
out.println( tableauExcel ) ;
out.flush() ;
out.close() ;
Dans mon cas tableauExcel est un StringBuffer (créé comme un CSV)
Marsh Posté le 08-09-2005 à 13:38:48
Finalement j'avais utisé une technique qui ressemble en fait très fortement à ça. Il s'agit de créer une JSP qui premet d'ouvrir des fichiers xls.
Voici le code:
response.setContentType("application/xls" );
response.setHeader("Content-Disposition", "atachment; filename=MonFichier.xls" );
response.setHeader("Content-Description", "JSP Generated Data" );
try
{
File uFile = new File( path );
// calcule la taille du fichier (inutile ici)
int fSize=(int)uFile.length();
// objet qui va permettre de lire dans le fichier :
FileInputStream fis = new FileInputStream(uFile);
// ouverture du flux de sortie pour créer la réponse qui va contenir le fichier excel (pareil que pour les fichiers html)
PrintWriter pw = response.getWriter();
// boucle octet par octet sur le fichier
// tant qu'il y a un octet à lire, tu écris l'octet dans la réponse
int c=-1;
while ((c = fis.read()) != -1)
pw.print((char)c);
// Maintenant y a plus qu'à tout fermer et envoyer le tout
fis.close();
pw.flush();
pw = null;
}
catch(Exception e){}
Marsh Posté le 01-09-2005 à 22:48:41
Bonjour,
j'ai lu dans le tutorial de l'API Excel pour Java qu'il était possible d'envoyer sur la sortie un fichier Excel, en définissant correctement l'en-tête HTTP.
Je voudrais utiliser ça dans une servlet pour créer un fichier excel et l'ouvrir immédiatement chez un client, mais je n'ai pas vu la manière de le faire, ou alors je n'ai pas bien regardé dans le tutorial...
Existe-t-il une méthode spécifique dans l'API ou faut-il faire une redirection spéciale?
Merci