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

Documents Java Discussion :

[Apache POI] Mise en forme des cellules


Sujet :

Documents Java

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut [Apache POI] Mise en forme des cellules
    Bonjour, voila mon souci j'ai une application qui me permet d'écrire dans un fichier xls grace a l'API POI de Apache,

    la mise en forme de mes cellules (couleur taille) ce fait parfaitement bien grâce a ce code ci:

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
            Cell c = null;
     
            //Cell pleine
            CellStyle cs = wb.createCellStyle();
            cs.setFillForegroundColor(HSSFColor.LIME.index);
            cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
     
    //Cell vide
            CellStyle csvide = wb.createCellStyle();
            csvide.setFillForegroundColor(HSSFColor.WHITE.index);
            csvide.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
          //  csvide.setUnderline(HSSFFont.U_SINGLE);
          //  my_style.setFont(my_font);
     
            //New Sheet
            HSSFSheet sheet1 = wb.getSheetAt(0);
            //Sheet sheet1 = null;
            //sheet1 = wb.createSheet("Intervention2");
     
            /////////////////
     
            /////////////////
     
            // Generate column headings
            ////////////////////////////////////ICI a rajputer +1
           //int rownum = sheet1.getLastRowNum();
            int rownum = sheet1.getLastRowNum()+1;
            Log.d("Debug", String.valueOf(rownum));
            //////////////////////////////
     
            //Update the value of cell
     
          //  Row row = sheet1.getRow(0);
          //  row.createCell(3).setCellValue("Value 2");
            /////////////////////////////////
            Row row = sheet1.createRow(rownum);
            //Row row1 = sheet1.createRow(1);
            c = row.createCell(11);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(10);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(9);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(8);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(0);
            c.setCellValue(orderName);
            c.setCellStyle(cs);
     
            c = row.createCell(1);
            c.setCellValue(NameDate);
            c.setCellStyle(cs);
     
            c = row.createCell(2);
            c.setCellValue(NameHeure);
            c.setCellStyle(cs);
     
            c = row.createCell(3);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(4);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(5);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(6);
            c.setCellValue(NameDateNew);
            c.setCellStyle(cs);
     
            c = row.createCell(7);
            c.setCellValue(NameHeureNew);
            c.setCellStyle(cs);
     
     
            sheet1.setColumnWidth(11, (15 * 300));
            sheet1.setColumnWidth(10, (15 * 300));
            sheet1.setColumnWidth(9, (15 * 300));
            sheet1.setColumnWidth(8, (15 * 350));
            sheet1.setColumnWidth(0, (15 * 500));
            sheet1.setColumnWidth(1, (15 * 250));
            sheet1.setColumnWidth(2, (15 * 200));
            sheet1.setColumnWidth(3, (15 * 250));
            sheet1.setColumnWidth(4, (15 * 250));
            sheet1.setColumnWidth(5, (15 * 200));
            sheet1.setColumnWidth(6, (15 * 200));
            sheet1.setColumnWidth(7, (15 * 200));
    seulement voila après la 20eme ligne la couleur ne ce met plus sur les future ligne..

    auriez vous une explication?

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Est-ce que les données sont bien écrites au-delà de la ligne 20 ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Salut et merci de ta réponse,

    oui justement c'est sa qui est étrange tous s’écrie comme il ce doit, la taille des cellule est juste mais c'est vraiment la couleur de fonds qui ne s'applique plus...

    j'ai beau chercher je ne vois pas d'ou cela pourrait venir...

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Comme là, on n'a qu'une partie du code, ce n'est pas possible d'en savoir plus.
    Je suppose qu'il s'agit d'une méthode pour ajouter une ligne à une feuille déjà existante.

    Par ailleurs, il est curieux de faire les ajouts de cellules dans le désordre.
    Je ne sais pas si c'est important mais en tout cas cela ne contribue pas à la clarté.

    Enfin je ne vois pas pourquoi tu redéfini à chaque fois la largeur des colonnes qui ne devraient plus varier non ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Effectivement voici le code complet de mon listener sur clique qui est sensé écrire dans mon fichier

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    ////////Classe du boutton save
        private boolean saveExcelFile(Context context, String fileName) {
            /////////Activer le boutton excel quand un ordre a ete enregistrer
            BTNExcel = (Button) findViewById(R.id.BouttonExcel);
            //////Active le bouton apres la sauvegarde du premiere ordre
            BTNExcel.setEnabled(true);
     
            BTNDel = (Button) findViewById(R.id.del);
            //////Active le bouton apres le choix de la catégorie
            BTNDel.setEnabled(true);
    /////////////////Variable
            final int mois = d.getMonth() + 1;
            final int annees = d.getYear() - 100;
            final int jours = d.getDate();
            final String datesok = jours + "." + mois + "." + annees;
            Date date = new Date();
            SimpleDateFormat f = new SimpleDateFormat("HH:mm");
            String heureordre = f.format(date);
            //récuperation de l'ordre au clique
            //Récuperation ordre
            Spinner spinner = (Spinner) findViewById(R.id.ordre_spinner);
            String text = spinner.getSelectedItem().toString();
            ////////////////Création des variable
            String Espace = "             ";
            String NameCI = NameChef  + Espace;
            String NameInterNew =  Espace;
            String NameCISpiner =  Espace;
            String NameType = Espace ;
            String orderName = text + Espace ;
            String NameDate = datesok  + Espace;
            String NameHeure = heureordre  + Espace;
            String NameDateNew =+day+"-"+month+"-"+year+ Espace;
            String NameHeureNew = hour+"-"+minute;
            year = 0;
            month = 0;
            day = 0;
            hour = 0;
            minute = 0;
            /////////////////////////
            // check if available and not read only
            if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
                Log.w("FileUtils", "Storage not available or read only");
                return false;
            }
     
            boolean success = false;
     
            //New Workbook
            // Create a path where we will place our List of objects on external storage
          //  File file = new File(context.getExternalFilesDir(null), fileName);
            FileOutputStream os = null;
            FileInputStream file = null;
            try {
                file = new FileInputStream(new File(context.getExternalFilesDir(null), fileName));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     
            HSSFWorkbook wb = null;
            try {
                wb = new HSSFWorkbook(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
            // Workbook wb = new HSSFWorkbook();
     
            Cell c = null;
     
            //Cell pleine
            CellStyle cs = wb.createCellStyle();
            cs.setFillForegroundColor(HSSFColor.LIME.index);
            cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
     
    //Cell vide
            CellStyle csvide = wb.createCellStyle();
            csvide.setFillForegroundColor(HSSFColor.WHITE.index);
            csvide.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
          //  csvide.setUnderline(HSSFFont.U_SINGLE);
          //  my_style.setFont(my_font);
     
            //New Sheet
            HSSFSheet sheet1 = wb.getSheetAt(0);
            //Sheet sheet1 = null;
            //sheet1 = wb.createSheet("Intervention2");
     
            /////////////////
     
            /////////////////
     
            // Generate column headings
            ////////////////////////////////////ICI a rajputer +1
           //int rownum = sheet1.getLastRowNum();
            int rownum = sheet1.getLastRowNum()+1;
            Log.d("Debug", String.valueOf(rownum));
            //////////////////////////////
     
            //Update the value of cell
     
          //  Row row = sheet1.getRow(0);
          //  row.createCell(3).setCellValue("Value 2");
            /////////////////////////////////
            Row row = sheet1.createRow(rownum);
            //Row row1 = sheet1.createRow(1);
     
            c = row.createCell(0);
            c.setCellValue(orderName);
            c.setCellStyle(cs);
     
            c = row.createCell(1);
            c.setCellValue(NameDate);
            c.setCellStyle(cs);
     
            c = row.createCell(2);
            c.setCellValue(NameHeure);
            c.setCellStyle(cs);
     
            c = row.createCell(3);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(4);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(5);
            c.setCellValue("");
            c.setCellStyle(cs);
     
            c = row.createCell(6);
            c.setCellValue(NameDateNew);
            c.setCellStyle(cs);
     
            c = row.createCell(7);
            c.setCellValue(NameHeureNew);
            c.setCellStyle(cs);
     
            c = row.createCell(8);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(9);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(10);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
            c = row.createCell(11);
            c.setCellValue("");
            c.setCellStyle(csvide);
     
     
            sheet1.setColumnWidth(0, (15 * 500));
            sheet1.setColumnWidth(1, (15 * 250));
            sheet1.setColumnWidth(2, (15 * 200));
            sheet1.setColumnWidth(3, (15 * 250));
            sheet1.setColumnWidth(4, (15 * 250));
            sheet1.setColumnWidth(5, (15 * 200));
            sheet1.setColumnWidth(6, (15 * 200));
            sheet1.setColumnWidth(7, (15 * 200));
            sheet1.setColumnWidth(8, (15 * 350));
            sheet1.setColumnWidth(9, (15 * 300));
            sheet1.setColumnWidth(10, (15 * 300));
            sheet1.setColumnWidth(11, (15 * 300));
     
            try {
              //  file = new FileInputStream(new File(context.getExternalFilesDir(null), fileName+2));
                FileOutputStream outFile = new FileOutputStream(new File(context.getExternalFilesDir(null), fileName));
                // workbook.write(outFile);
              //  os = new FileOutputStream(file);
                wb.write(outFile);
                Log.w("FileUtils", "Writing file" + file);
                success = true;
            } catch (IOException e) {
                Log.w("FileUtils", "Error writing " + file, e);
            } catch (Exception e) {
                Log.w("FileUtils", "Failed to save file", e);
            } finally {
                try {
                    if (null != os)
                        os.close();
                } catch (Exception ex) {
                }
            }
     
            return success;
        }
    pour ce qui est du désordre c’était simplement suite a une modification de ma part mais effectivement cela ne facilite en rien la lecture de mon code qui est déjà brouillonne je suis d'accord...

    pour ce qui est de définir la taille des cellules effectivement cela ne sert a rien mais ou est ce que je peux entrer ce code si je ne le met pas sur mon onclick?

    navrée des question bête mais je suis débutant dans le domaine...

  6. #6
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Je me permet de relancer le sujet je ne comprends vraiment pas pourquoi ma mise en forme ne s'applique plus après la 20eme ligne...

    mon code de mise en forme est pourtant simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            CellStyle cs = wb.createCellStyle();
            cs.setFillForegroundColor(HSSFColor.LIME.index);
            cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    par contre je recrée la CellStyle a chaque clique est ce que sa pourrait venir de la?

    PS: j'utilise le même code sur plusieurs activity et j'ai le problème sur chacune d'elle...

    par contre si je créer 20 ligne sur une activity et que je retourne sur une deuxième activity je peut réécrire 20 autres ligne dans le même workbook même sheet sans souci...

    Auriez vous une idées??

    Merci d'avance!

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    sur plusieurs activity
    C'est sous Android ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Pardon je n'ai pas préciser mais ou je suis sous androïde et je fait mes app avec android studio!

  9. #9
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Je ne suis pas a la bonne place du coup?

  10. #10
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par der43e Voir le message
    Je ne suis pas a la bonne place du coup?
    Bonsoir,

    Je ne vais pas beaucoup t'aider pour ton soucis. Mais à première vue, tu es à la bonne place car ton problème est survenue à l'utilisation de l'API Apache POI.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  11. #11
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Certes mais est-ce que l'API réagi pareil sous Android ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  12. #12
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Je ne pourrait pas le juré mais de ce que j'ai vu sa ma l'ai rigoureusement identique oui...!

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Dans ce cas ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #14
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Je me permet de relancer le sujet...

    je n'ai toujours pas trouver de solution, personne d'autres n'as de souci de mise en forme du fichier (uniquement couleur) après 20 écriture pile poil?

  15. #15
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Alors j'ai trouver la cause du bug, c'est mon deuxième CellStyle qui me fait planter (allez savoir pourquoi) mon style de cellule après 20 "mise en page"...

    en retirent ma deuxième cela fonctionne parfaitement mais je cherche encore comment mettre mes deux style et je passerait le sujet en résolut le moment voulut!

  16. #16
    Membre du Club
    Homme Profil pro
    Ingénieur Développement/Intégration
    Inscrit en
    Mai 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Développement/Intégration
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 30
    Points : 42
    Points
    42
    Par défaut Apache POI valorisation Objet CellStyle
    Bonjour,

    J'ai eu un problème du même style, lorsque je chargeais un fichier excel .xls après avoir valorisé un objet CellStyle, au bout de 42 lignes le style n'était plus pris en compte dans le fichier Excel en sortie.

    Le problème venait que j'instansiais l'objet CellStyle dans une boucle de la manière suivante :
    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
     
     
                CellStyle l_styleDeLaCellule = null;
     
    ...
     
                // boucle sur les lignes corps
                for (int j = 0; j < this.getaCorpsDuTableau().length; j++) {
     
                    l_ligne = l_onglet.createRow(j + 1);
     
                    // Si le n° de ligne est impaire, collorer la ligne en bleu
                    if (j % 2 != 0) {
                        // Valorisation du style de la cellule en bleu clair pour le corps du tabelau
                        l_styleDeLaCellule = l_gestionDuStyle.styleBleuClair(l_classeur);
                    } else {
                        // Valorisation du style de cellule standard (blanc) pour le corps du tableau
                        l_styleDeLaCellule =  l_gestionDuStyle.styleStandard(l_classeur);
                    }
     
    ...
    }


    Alors qu'il fallait le faire hors de la boucle de la manière suivante :


    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
     
     
     
                CellStyle l_styleDeLaCellule = null;
                CellStyle l_styleDeLaCelluleBleuClair = null;
                CellStyle l_styleDeLaCelluleBlanc = null;
     
    ...
     
                // Valorisation du style de la cellule en bleu clair pour le corps du tabelau
                l_styleDeLaCelluleBleuClair = l_gestionDuStyle.styleBleuClair(l_classeur);
     
                // Valorisation du style de cellule standard (blanc) pour le corps du tableau
                l_styleDeLaCelluleBlanc = l_gestionDuStyle.styleStandard(l_classeur);
     
    ...
     
                // boucle sur les lignes corps
                for (int j = 0; j < this.getaCorpsDuTableau().length; j++) {
     
                    l_ligne = l_onglet.createRow(j + 1);
     
                    // Si le n° de ligne est impaire, collorer la ligne en bleu
                    if (j % 2 != 0) {
                        // Valorisation du style de la cellule en bleu clair pour le corps du tabelau
                        l_styleDeLaCellule = l_styleDeLaCelluleBleuClair;
                    } else {
                        // Valorisation du style de cellule standard (blanc) pour le corps du tableau
                        l_styleDeLaCellule = l_styleDeLaCelluleBlanc;
                    }
     
    ...
    }
    Bien à vous.

Discussions similaires

  1. Mise en forme des cellules sous jxl
    Par aur0re dans le forum Documents
    Réponses: 7
    Dernier message: 14/10/2009, 15h26
  2. Réponses: 3
    Dernier message: 19/07/2007, 09h19
  3. Mise en forme des cellules d'une flexgrid
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 30/08/2006, 10h57
  4. [VBA-E] mise en forme des cellules
    Par Cirdan Telemnar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2006, 19h44
  5. [POI] difficultés dans la mise en forme des cellules
    Par corbier32 dans le forum Documents
    Réponses: 2
    Dernier message: 03/05/2006, 09h48

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