[JAVA]probleme export en xls (Servlet)OutputStream

probleme export en xls (Servlet)OutputStream [JAVA] - Java - Programmation

Marsh Posté le 12-08-2008 à 09:49:11    

Salut, je cré un fichier excel avec POI et veux l'exporter.
 je tombe sur une page de code de ce style et pas de boite de dialogue pour choisir la destination

Citation :

ÐÏࡱá;þÿ /þÿÿÿþÿÿÿ0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÓÌAá°Áâ\pantoine B°a=œ¯¼=h\:¾#8X@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…ACTUAL_CAPACITYŒü¦ • Area CodeCRP WorkcentreCRP Workcentre DescOEE P1Inventory P1 PlantOEE P2Inventory P2 PlantOEE P3Inventory P3 PlantOEE  
...


 
je reconnais mes data dans le code donc c'est le fichier. Ce n'est donc pas un probleme de POI mais d'export.
J'ai essayé le code suivant. Il marche sur une autre appli mais pas celle ci

Citation :

protected void processRequest(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
 
        response.setContentType("application/vnd.ms-excel" );
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("new sheet" );
 
        // Create a row and put some cells in it. Rows are 0 based.
        HSSFRow row     = sheet.createRow((short)0);
 
        // Create a cell and put a value in it.
        HSSFCell cell   = row.createCell((short)0);
 
        cell.setCellValue(1);
 
        // Or do it on one line.
        row.createCell((short)1).setCellValue(1.2);
        row.createCell((short)2).setCellValue("This is a string" );
        row.createCell((short)3).setCellValue(true);
        // Write the output  
        OutputStream out = response.getOutputStream();
        wb.write(out);
        out.close();
    }


 
j'ai essayé ca aussi, ca marche aussi sur une autre appli mais pas celle-ci

Citation :

response.setHeader("Cache-Control", "max-age=30" );
        response.setContentType("application/vnd.ms-excel" );
        StringBuffer sbFilename = new StringBuffer();
        sbFilename.append("Actual_Capactity_" );
        DateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd" );
        Date date = new Date();
        sbFilename.append((dateFormat.format(date)).toString());
        sbFilename.append(".xls" );
        StringBuffer sbContentDispValue = new StringBuffer();
        sbContentDispValue.append("inline" );
        sbContentDispValue.append("; filename=" );
        sbContentDispValue.append(sbFilename);
        response.setHeader("Content-disposition",sbContentDispValue.toString());
        ServletOutputStream  servletOutputStream = response.getOutputStream();
        servletOutputStream.flush();
        wb.write(servletOutputStream);        
        servletOutputStream.close();


 
J'ai essayé de mettre a jour ma version de java.io.outputstream qui date de 2001 mais pas de changement.
Merci de votre aide j'ai besoin d'une solution assez vite.
 
(recap:
creation du fichier avec POI
export avec outputstream ou servletoutputstream
pas de boite de dialogue pour choisir la destination
affichage du code du fichier)


Message édité par Toinou87 le 12-08-2008 à 09:51:33

---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 12-08-2008 à 09:49:11   

Reply

Marsh Posté le 12-08-2008 à 09:58:43    

Code :
  1. response.setHeader("Content-Disposition", "attachment; filename=\"" + tonNomDeFichierQuiVaBien + "\"" );
 

non ?


Message édité par brisssou le 12-08-2008 à 09:59:09

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 12-08-2008 à 10:04:01    

non c pas ca (preuve dans le premier code ca y est pas et il marche dans une autre appli.)
Pour moi ca vient pas du code en soit car on a copier coller celui ci dans une autre appli et il marche. Donc je vois pas ce que ca peut etre d'autre que les lib mais on a tester ca aussi. La j'ai vraiment plus d'idees

 

edit: j'ai essayé qd meme et c pas ca


Message édité par Toinou87 le 12-08-2008 à 10:06:16

---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 12-08-2008 à 10:05:38    

[:thalis]


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 12-08-2008 à 10:07:17    

ouais c tres bizarre et c'est tres urgent :'(


---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 12-08-2008 à 10:15:54    

je viens de faire un autre essais ca ne marche tjs pas.
code

Citation :


package web.actions;
 
import java.io.IOException;
import java.io.OutputStream;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
 
public class TestExport extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
             
         
        response.setContentType("application/vnd.ms-excel" );
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("new sheet" );
 
        // Create a row and put some cells in it. Rows are 0 based.
        HSSFRow row     = sheet.createRow((short)0);
 
        // Create a cell and put a value in it.
        HSSFCell cell   = row.createCell((short)0);
 
        cell.setCellValue(1);
 
        // Or do it on one line.
        row.createCell((short)1).setCellValue(1.2);
        row.createCell((short)2).setCellValue("This is a string" );
        row.createCell((short)3).setCellValue(true);
        // Write the output  
        OutputStream out = response.getOutputStream();
        wb.write(out);
        out.close();
 
         
         
            return null;
    }
 
}
 


resultat

Citation :


ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot EntryÿÿÿÿÿÿÿÿWorkbookÿÿÿÿÿÿÿÿÿÿÿÿÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÓÌAá°Áâ\pantoine B°a=œ¯¼=h\:¾#8X@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)àõÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ à À à+õÿ øÀ à)õÿ øÀ à,õÿ øÀ à*õÿ øÀ à õÿ øÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…| new sheetŒüThis is a stringÿ W » ÌÁ  dü©ñÒMbP?_*+‚€%ÿÁƒ„¡"d,,à?à?Uð?333333ó?ý ÿ>¶@ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ


Message édité par Toinou87 le 12-08-2008 à 11:49:19

---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 12-08-2008 à 11:00:25    

pour info je l'ai mis sur une autre application et ca marche. Je comprends vraiment pas ce qui cloche avec mon appli.


---------------
Toinou87 ;-p May the force be with you!!
Reply

Marsh Posté le 13-08-2008 à 10:27:40    

un de mes collegues a trouvé la solution. cela venait de "inline" dans le header qu'il fallait mettre en "attachement".
Mais on ne comprend pas pourquoi le meme code marchait sur d'autres appli


---------------
Toinou87 ;-p May the force be with you!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed