IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

exporter un fichier au format csv et Excel


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut exporter un fichier au format csv et Excel
    Bonjour tout le monde,

    j'aimerai exporter un fichier au format csv selon certains critere renseigner par l'utilisateur.
    voila ce que j'ai deja fait mais cela me renvoie une page blanche.

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
     public String exportCSV( HttpServletRequest request,  HttpServletResponse response){
          try {
             String type = (String) request.getAttribute("type");
             String dateDebut = (String) request.getAttribute("dateDebut");
             String dateFin = (String) request.getAttribute("dateFin");
     
             if (type == null || type.equals("0")) {
                return null;
             }
             File fileRep = new File(Contexte.getInstance().getCheminApplication() + "log");
             // Créer le répertoire de log si inexistant
             if (!fileRep.exists()) {
                fileRep.mkdir();
             }
             File fileLog = new File(fileRep, "journal.log");
             String nomRapport = fileLog.getName();
             nomRapport = nomRapport.substring(0, nomRapport.indexOf("."));
     
             PrintWriter pt = response.getWriter();
             FileInputStream fr = new FileInputStream(fileLog);
             BufferedReader br = new BufferedReader(new InputStreamReader(fr, Encodage.UTF8));
     
             String lignelu = br.readLine(); // lire une 1ere ligne
             while (lignelu != null) { // tant qu'il ya des lignes
                // System.out.println("lignelu"+lignelu);
                StringTokenizer strt = new StringTokenizer(lignelu, ";"); //recuperer la ligne sous forme de token separer par un ; 
                String typeLigne = strt.nextToken(); // on prend le type sous forme de code
                System.out.println("typeLigne"+typeLigne);
                String typeAction = strt.nextToken();
                String dateRecup = strt.nextToken(); // on récupère la date de la ligne
                dateRecup = dateRecup.substring(7,11) + dateRecup.substring(3, 7) + dateRecup.substring(1, 3); // on la convertie en  yyyy/MM/dd   
                System.out.println("daterecup: " + dateRecup);
     
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
                Date dd = null, df = null, dr;
                dr = sdf.parse(dateRecup);
                if(dateDebut.length()>0){
                   dd = sdf.parse(dateDebut);   
                }
                if(dateFin.length()>0){
                   df = sdf.parse(dateFin);
                }
                System.out.println("dateDebut converti: "+dd); 
                System.out.println("dateDebut converti: "+df);
                if ( (type.equals("4") || typeLigne.equals(type)) && ((dateDebut.equals("")||!dr.before(dd)) && (dateFin.equals("")||!dr.after(df))) ){ //si le type de la ligne du fichier correspond au type rechercher
                                                                                                                                     // et si la date de debut contient rien ou date debut est <= dateDebut                                                                                                                  // et si la date fin contient rien  ou la date fin est >= dateFin
                   dateRecup = dateRecup.substring(8) + dateRecup.substring(4, 8) + dateRecup.substring(0, 4);
                   System.out.println("dateRecup"+dateRecup);
                   pt.print("<tr class='texte_liste'>"); //imprimer la balise d'ouverture d'une ligne dans un tableau
                   pt.print("<td class='entetelisteb'><div align='center'>"+ typeAction +"</div></td>");
                   pt.print("<td class='entetelisteb'><div align='center'>"+ dateRecup +"</div></td>");
     
                   System.out.println("un type trouvée compris dans la periode");
     
                   while (strt.hasMoreTokens()) { // tant qu'il ya des tokens
                      pt.print("<td class='entetelisteb'><div align='center'>" + strt.nextToken() + "</div></td>");
     
                   }
                   pt.print("</tr>");
                }
                lignelu = br.readLine();// relire une nouvelle ligne
             }
             fr.close();
     
     
             if (type.equals("csv")) {
                ecrireFichierDansFluxReponse(response, nomRapport, fileLog, "text/csv", true);
             }
          }
          catch (Exception e) {
             traiterErreur(request, response, e);
          }
          return null;
       }
    ma jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    ...
     
    &nbsp;<input type="image" src="${pageContext.request.contextPath}/work/images/csv_logo.gif" width="20" height="17" onclick = "javascript:doAction('adminJournal.exportCSV','form1','nomMethod')" title="<fmt:message key="admin.journalActions.btnExportCSV.bulle"/>">
    <input type="image" src="${pageContext.request.contextPath}/work/images/excel_logo.gif" width="20" height="17" onclick = "javascript:doAction('adminJournal.exportExcel','form1','nomMethod')" title="<fmt:message key="admin.journalActions.btnExportExcel.bulle"/> ">
     
    ...
    quelqu'un a t-il un retour d'expérience ou une solution a me proposer ?

    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 49
    Par défaut
    Si tes données sont ok je dirais que le problème est dans ta méthode ecrireFichierDansFluxReponse.

    Peut tu poster son corp.

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    salut,

    En fait, je la trouve pas dans l'application meme quand je fait ctrl + clic dessus. En faite, on me dit qu'elle hérite de HttpAction.
    elle est défini comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    protected void ecrireFichierDansFluxReponse(javax.servlethttp.HttpServletResponse response, java.lang.String nomFichier, java.io.File fichier, java.lang.String typeMime, boolean attachement);

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/03/2009, 12h47
  2. [Format CSV] Import Excel
    Par sempire dans le forum Excel
    Réponses: 1
    Dernier message: 01/08/2008, 21h52
  3. [ksh] Liste récursive des fichiers, au format CSV
    Par Neuromancien2 dans le forum Linux
    Réponses: 2
    Dernier message: 19/02/2008, 23h41
  4. Réponses: 4
    Dernier message: 15/01/2007, 11h53
  5. [phpMyAdmin] Exporter une requête au format CSV
    Par nicoaix dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/02/2006, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo