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 :

Problème de style des colonnes d'un fichier EXCEL


Sujet :

Documents Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut Problème de style des colonnes d'un fichier EXCEL
    Bonjour tout le monde ;
    je génère un fichier Excel en utilisant l'API POI.
    Dans le fichier j'ai 4 classeurs (feuilles), chaque feuille contient des cellules dynamiquement crées.

    Je désire encadrer chaque cellule crée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
              cell.setCellStyle(style);
    -Voici la méthode qui permet de creer le premier classeur qui contient trois lignes, chaque ligne contient deux colonnes :

    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
    HSSFCellStyle style = null;
     
            // recupère l onglet informations générales
            HSSFSheet sheet = wb.getSheetAt(0);
            // cellue de l'auteur
            HSSFRow row = sheet.createRow(0);
            HSSFCell cell = row.createCell((short) 1);
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellValue(dto.getAuteur());
              style = cell.getCellStyle();
              style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
              cell.setCellStyle(style);
     
            // date
            row = sheet.createRow(1);
            cell = row.createCell((short) 1);
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellValue(this.getStringDateFromDate(dto.getDate()));
            // heure
            row = sheet.createRow(2);
            cell = row.createCell((short) 1);
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellValue(dto.getHeure());
    Le problème que j'ai que c'est pas seulement la cellule d'auteur qui'est encadré, même les cellule date et heure et j'ai la même chose pour les autres classeurs.
    je veux par exemple encadrer seulement la cellule (B1).
    y'a une façon d'encadrer la cellule au moment de sa création?.
    Merci pour votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    Rebonjour,
    En faite le problème c'est que le style appliqué sur les cellules de la feuille1 sera appliquée pour toutes les feuilles du fichier.

    exemple :j'ai appliqué le style font sur la premiere cellule de la premiere feuille, j'ai trouvé que toutes les cellules des autres feuilles ont le même font.

    y-a-pas un moyen pour appliqué le style aux cellules spécifiques?.
    PAr avance merci pour votre aide.

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Qd tu as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cell.setCellStyle(style);
    cell contiendra tjs le même style ...

    Donc soit prendre une autre variable HSSFCell ou alors rechanger le style sur la variable cell.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    Salut;
    C'est normal ça va garder la même valeur, mais moi j'ai pas fait cell.setCellStyle(style); pour tout les cellules et je l'ai pas fait pour les autres classeurs.
    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
     
     
     //Style des cellules
               HSSFCellStyle style = null;
                Create a new font and alter it.
              HSSFFont font = wb.createFont();
               font.setFontHeightInPoints((short)16);
               font.setFontName(HSSFFont.FONT_ARIAL);
              font.setColor(HSSFColor.BLUE.index);
     
     
            // recupère l onglet informations générales
            HSSFSheet sheet = wb.getSheetAt(0);
            // auteur
            HSSFRow row = sheet.createRow(0);
            HSSFCell cell = row.createCell((short) 1);
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell.setCellValue(dto.getAuteur());
              style = cell.getCellStyle();
              style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
              style.setFillBackgroundColor(HSSFColor.BLUE.index);
              style.setFont(font);
              style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
              style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
              style.setFont(font);
              cell.setCellStyle(style);
     
            // date
              font.setColor(HSSFColor.DARK_RED.index);
              HSSFRow row1 = sheet.createRow(1); 
            row = sheet.createRow(1);
            HSSFCell cell1 = row1.createCell((short) 1);
            cell1 = row1.createCell((short) 1);
            cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell1.setCellValue(this.getStringDateFromDate(dto.getDate()));
            // heure
            HSSFRow row2 = sheet.createRow(2);
            HSSFCell cell2 = row2.createCell((short) 1);
            cell2 = row2.createCell((short) 1);
            cell2.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell2.setCellValue(dto.getHeure());
    dans ce code j'ai pas fait setStyle pour les cellules date et heure (cell1 et cell2),mais elles prennent le même style.
    Merci pour votre aide.

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Re

    Je sais pas si cela peut t'aider mais je savais qu'il y a avait une liaison entre style et Workbook.

    Cad que au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HSSFCellStyle style = null;
    style = cell.getCellStyle();
    Tu fais les différents styles et les fonts ainsi que les setteurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    HSSFCellStyle st1 = wb.createCellStyle();   // wb le workBook
    HSSFCellStyle st2 = wb.createCellStyle();
    ....
    HSSFFont f1 = wb.createFont();
    HSSFFont f2 = wb.createFont();
    .....
    f1.setColor ...
    st1.setAlign ...
     
    st1.setFont( f1);
    ....
    Ensuite les liaisons et le set sur les cellules désirées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cell.setCellStyle(st1);
    ... ton dév pour auteur
    cell.setCellStyle(st2);
    .... ton dév pour date et heure

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    Bravo Mr FENSH ;ça marche parfaitement bien.
    merci bcp.

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

Discussions similaires

  1. supprimer des colonnes d'un fichier excel
    Par manguigs dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/09/2014, 10h26
  2. Code VBA pour copier-coller des colonnes d'un fichier Excel à un autre
    Par User Name dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2014, 23h30
  3. Création fichier Excel. Problème de nom des colonnes
    Par gnt.dev dans le forum Général Java
    Réponses: 1
    Dernier message: 31/01/2012, 10h51
  4. [PHPExcel] Redimensionnement automatique des colonnes d'un fichier excel
    Par beegees dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/01/2012, 15h15
  5. copier des colonnes dans un fichier excel
    Par nizar24 dans le forum Shell et commandes GNU
    Réponses: 24
    Dernier message: 14/02/2011, 17h07

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