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

Entrée/Sortie Java Discussion :

Fichier Excel incomplet après utilisation de POI


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 108
    Par défaut Fichier Excel incomplet après utilisation de POI
    Bonjour a tous,
    je suis entrain de développer une application web pour gérer des ventes, stock et tout, dans mon application j'ai besoin d'exporter mes ventes dans fichier excel, mais lorsque j'ouvre mon fichier excel je trouve seulement un seul ligne malgres que ma liste de mes ventes contient plusieurs éléments !!
    j'ai pas compris il est ou le problème exactement!
    donc voila je vous montre mon code esperant avoir une solution

    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
     
    package com.project.core.domain.export;
     
    import com.project.core.domain.entities.Sale;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.List;
     
     
    public class SaleExportImpl implements SaleExport {
     
        private Logger log = LoggerFactory.getLogger(SaleExportImpl.class);
     
        private static final int HEADER_ROW = 0;
        int rownum = HEADER_ROW;    
        private Workbook workbook;  
        private Sheet currentSheet;
        private Row currentRow;
        private Row row;
     
     
        public String export(List<Sale> sales, OutputStream stream) throws IOException {
     
        	workbook = new HSSFWorkbook();
            //createHelper = workbook.getCreationHelper();
     
            currentSheet = workbook.createSheet("Sales");
            currentRow = currentSheet.createRow(HEADER_ROW);
            currentRow.createCell(0).setCellValue("Ref sale");
            currentRow.createCell(1).setCellValue("Order Date");
            currentRow.createCell(2).setCellValue("Order Status");
            currentRow.createCell(3).setCellValue("Ref Product");
            currentRow.createCell(4).setCellValue("Product Name");
            currentRow.createCell(5).setCellValue("Price/Unit");
            currentRow.createCell(6).setCellValue("Quantity");
     
            for (Sale sale : sales)
            {
            	rownum = rownum++;
               row = currentSheet.createRow(rownum);
               row.createCell(0).setCellValue(sale.getId());
               row.createCell(1).setCellValue(sale.getOrder().getOrderDate());
               row.createCell(2).setCellValue(sale.getOrder().getOrderStatus().toString());
               row.createCell(3).setCellValue(sale.getProduct().getId());
               row.createCell(4).setCellValue(sale.getProduct().getName());
               row.createCell(5).setCellValue(sale.getPrice());
               row.createCell(6).setCellValue(sale.getQuantity());            
     
            }        
            workbook.write(stream);
     
            return "It's OK";
        }
    }

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Essaie d'utiliser des variables locales pour les lignes. Tu ne les utilises que pour une seule méthode. De même pour les autres.

    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
     
    package com.project.core.domain.export;
     
    import com.project.core.domain.entities.Sale;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.List;
     
     
    public class SaleExportImpl implements SaleExport {
     
        private Logger log = LoggerFactory.getLogger(SaleExportImpl.class);
     
        private static final int HEADER_ROW = 0;
        int rownum = HEADER_ROW;    
        private Workbook workbook;  
        private Sheet currentSheet;
     
        public String export(List<Sale> sales, OutputStream stream) throws IOException {
     
        	workbook = new HSSFWorkbook();
            //createHelper = workbook.getCreationHelper();
     
            currentSheet = workbook.createSheet("Sales");
            Row  currentRow = currentSheet.createRow(HEADER_ROW);
            currentRow.createCell(0).setCellValue("Ref sale");
            currentRow.createCell(1).setCellValue("Order Date");
            currentRow.createCell(2).setCellValue("Order Status");
            currentRow.createCell(3).setCellValue("Ref Product");
            currentRow.createCell(4).setCellValue("Product Name");
            currentRow.createCell(5).setCellValue("Price/Unit");
            currentRow.createCell(6).setCellValue("Quantity");
     
            for (Sale sale : sales)
            {
               Row row = currentSheet.createRow(++rownum);
               row.createCell(0).setCellValue(sale.getId());
               row.createCell(1).setCellValue(sale.getOrder().getOrderDate());
               row.createCell(2).setCellValue(sale.getOrder().getOrderStatus().toString());
               row.createCell(3).setCellValue(sale.getProduct().getId());
               row.createCell(4).setCellValue(sale.getProduct().getName());
               row.createCell(5).setCellValue(sale.getPrice());
               row.createCell(6).setCellValue(sale.getQuantity());            
     
            }        
            workbook.write(stream);
     
            return "It's OK";
        }
    }
    A+.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    La variable locale ne va rien changer ici, il l'alloue bien à chaque itération de toutes façons.

    Par contre, met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            for (Sale sale : sales)
            {
            	rownum = rownum++;
                    System.out.printf("J'écrit la ligne %d : %s\n",rownum,sale);
    Pour etre sur qu'il y a bien plusieurs ventes

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 108
    Par défaut
    J'ai changè tout mes variables en des variables local mais c'est le même problème qui reste !

    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
     
    package com.citrusstv.core.domain.export;
     
    import com.citrusstv.core.domain.entities.Sale;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.List;
     
    /**
     * Created with IntelliJ IDEA.
     * User: HADA
     * Date: 7/10/12
     * Time: 10:45 AM
     * To change this template use File | Settings | File Templates.
     */
    public class SaleExportImpl implements SaleExport {
     
        private Logger log = LoggerFactory.getLogger(SaleExportImpl.class);
     
        private static final int HEADER_ROW = 0;
     
     
     
        public String export(List<Sale> sales, OutputStream stream) throws IOException {
     
        	Workbook workbook = new HSSFWorkbook();
     
        	Sheet currentSheet;
            Row currentRow;
            Row row;
            //createHelper = workbook.getCreationHelper();
     
            currentSheet = workbook.createSheet("Sales");
            currentRow = currentSheet.createRow(HEADER_ROW);
            currentRow.createCell(0).setCellValue("Ref sale");
            currentRow.createCell(1).setCellValue("Order Date");
            currentRow.createCell(2).setCellValue("Order Status");
            currentRow.createCell(3).setCellValue("Ref Product");
            currentRow.createCell(4).setCellValue("Product Name");
            currentRow.createCell(5).setCellValue("Price/Unit");
            currentRow.createCell(6).setCellValue("Quantity");
     
            int rownum = HEADER_ROW;
            for (Sale sale : sales)
            {
            	rownum = rownum++;
               row = currentSheet.createRow(rownum);
               row.createCell(0).setCellValue(sale.getId());
               row.createCell(1).setCellValue(sale.getOrder().getOrderDate());
               row.createCell(2).setCellValue(sale.getOrder().getOrderStatus().toString());
               row.createCell(3).setCellValue(sale.getProduct().getId());
               row.createCell(4).setCellValue(sale.getProduct().getName());
               row.createCell(5).setCellValue(sale.getPrice());
               row.createCell(6).setCellValue(sale.getQuantity());            
     
            }        
            workbook.write(stream);
     
            return "It's OK";
        }
    }

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 108
    Par défaut
    voila j'ai trouve l'erreur
    l'erreur est la :
    il faut plutot ecrire

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Si tu as repris mon code tu l'as résolue
    for (Sale sale : sales)
    {
    Row row = currentSheet.createRow(++rownum);


    A+.

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 108
    Par défaut
    Merci beaucoup andry pour ton aide

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ha oui tiens, elle est belle celle là

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 108
    Par défaut
    Mais non mon dieu j'ai cru que vous etes une seul personne
    meci pour toi aussi tchize

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Fichier (vidéo) incomplet après une copie
    Par Nosfé dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2013, 01h32
  2. fichier Excel à réparer après création par PHP
    Par Ceubex dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 19/07/2013, 16h37
  3. [Débutant] Créer un fichier Excel et après insérer des valeurs
    Par xingjing910 dans le forum VB.NET
    Réponses: 16
    Dernier message: 01/04/2012, 00h25
  4. Importer un fichier excel dans Oracle (utiliser Toad?)
    Par StephMtl dans le forum Import/Export
    Réponses: 1
    Dernier message: 02/09/2011, 16h10
  5. Fichier excel corrompu apres copie
    Par jaudurier dans le forum Maven
    Réponses: 6
    Dernier message: 03/07/2007, 10h57

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