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 :

POI : Export d'un tableau vers Excel


Sujet :

Documents Java

  1. #1
    Membre habitué
    POI : Export d'un tableau vers Excel
    Bonjour,
    Dans une appli web java, j'exporte un tableau de montants vers Excel (j'utilise POI 3.16 + HSSF).
    Tout fonctionne bien, sauf que certaines cellules sous Excel sont affichées tronquées : des # sont affichés au lieu de la valeur.
    Je suis obligé d'élargir la colonne pour voir les valeurs.
    Est-il possible de dimensionner automatiquement les cellules en fonction de leurs contenus ?
    Merci pour votre aide.

    Voici mon code java, suivi d'une capture écran :

    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
            HSSFWorkbook wb = (HSSFWorkbook) document;
            HSSFSheet sheet = wb.getSheetAt(0);  
            HSSFRow header = sheet.getRow(0);
     
            HSSFCellStyle styleMontant = wb.createCellStyle();
            styleMontant.setAlignment(HorizontalAlignment.RIGHT);
            styleMontant.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); 
     
            for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {        // Ligne
     
                for (int j = 0; j < header.getPhysicalNumberOfCells(); j++) {  // Colonne
     
                    HSSFCell cell = sheet.getRow(i).getCell(j);                // Cellule
     
                    if (i > 0) {  
     
                        if (j >= getColonneFixe()) {  // Colonnes Année
     
                            if (!cell.getStringCellValue().isEmpty()) { 
     
                                cell.setCellValue(Double.parseDouble(cell.getStringCellValue()));
     
                                cell.setCellStyle(styleMontant);
            }


    Résultat de l'export : (ici la colonne I est correcte !)



    Après élargissement 'manuel' des colonnes :


  2. #2
    Membre régulier
    Bonjour,

    Utilisez la méthode autoSizeColumn de l'objet HSSFSheet.
    De la documentation : http://poi.apache.org/apidocs/dev/org/apache/poi/hssf/usermodel/HSSFSheet.html#autoSizeColumn-int-

    Par exemple, à la fin de l'écriture de l'ensemble des données de votre feuille, bouclez sur toutes les colonnes en effectuant un auto size.

    Bon courage

  3. #3
    Membre habitué
    Bonjour,
    Merci pour votre réponse.
    Cela fonctionne bien.

###raw>template_hook.ano_emploi###