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 :

Ajuster la hauteur des lignes au contenu des cellules Excel avec POI


Sujet :

Documents Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 66
    Points
    66
    Par défaut Ajuster la hauteur des lignes au contenu des cellules Excel avec POI
    Bonjour, comment ajuster la hauteur des lignes d'un fichier excel généré avec POI en fonction du contenu des cellules ?

    J'ai des cellules qui contiennent du texte avec des retours chariots, mais tout apparait sur une seule ligne. comment y remédier avec l'api POI ?

    Merci de vos réponses.
    Science sans conscience ..

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Bonjour tout le monde,

    Je sais que ce problème date un peu mais j'ai exactement le même, j'ai beau chercher et tester ... rien y fait, si vous avez une idée... elle serait la bien venu.

    Merci !

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    HSSFCellStyle.setWrapText(true)
    sur le style appliqué à la cellule concernée, et excel adaptera automatiquement, par défaut, les lignes à la taille du texte.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Merci pour ta réponse, j'ai déjà appliqué cela, cela fonction tant qu'il n'y à pas de saut à la ligne ...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu les crée comment tes sauts de ligne?

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Je récupère un champ en base, les sauts à la ligne sont des "\r\n", mais j'ai remplacé "\r\n" par "\n" pour ne pas avoir des "petits carré" dans l'excel générer, et le saut est bien généré ...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je viens de tester ce code, il fonctionne sans soucis chez moi:

    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
    		HSSFWorkbook workbook = new HSSFWorkbook();
    		HSSFSheet sheet = workbook.createSheet("test");
    		HSSFCell cell = sheet.createRow(1).createCell((short)1);
    		HSSFCellStyle style = workbook.createCellStyle();
    		style.setWrapText(true);
    		cell.setCellValue(new HSSFRichTextString("Hello world\nBonjour le monde"));
    		cell.setCellStyle(style);
    		sheet.autoSizeColumn((short)1);
    		File tempFile = File.createTempFile("test", ".xls");
    		FileOutputStream fos = new FileOutputStream(tempFile);
    		try{
    		workbook.write(fos);
    		} finally {
    			fos.close();
    			Desktop.getDesktop().open(tempFile);
    		}

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    En attendant de pouvoir tester ton code, j'ai une interrogation, le champ que je génère dans le fichier excel est écrit dans une cellule qui correspond à la fusionné de 9 colonnes.

    Si mon champ est aussi grand que la cellule alors pas de problème.

    Mais si le saut de ligne intervient avant le passage à la ligne automatique, dans ce cas la, la hauteur ne s'ajuste pas.

    J'espère n’être pas trop confus ...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je crois que c'est plus un problème d'excel avec les cellule fusionnées. J'ai vu quelque par qu'il faut appliquer le style wordwrap à toutes les cellules faisant partie de la fusion avant de les fusionner

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Merci encore une fois pour ton aide.

    Je vais tester ce style wordwrap...je te tiens au courant ...

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Finalement, je n'ai rien trouvé sur ce fameux style wordwrap, tous mes test ont échoués, aurai-tu un exemple ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Effectivement, je viens de tester, avec des cellule fusionnées, il semble que ce ne soit pas possible.

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Arf, c'est ce que je craignais

    C'est uniquement pour une question d'esthétisme...je pourrai probablement m'en passer

    Merci pour tes tests et ta patience

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 107
    Points : 89
    Points
    89
    Par défaut
    Pour ceux que ça intéresse ...

    Finalement, tchize_ avait raison, il n'est pas possible d'ajuster automatiquement des cellules fusionnées.

    Une solution de contournement est donc de rigueur.

    D'abord, à chaque itération je compte le nombre de saut de ligne puis j'applique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    row.setHeight((short)(compteur_saut_de_ligne*256));
    Merci encore à tchize_

Discussions similaires

  1. [XL-2010] macro pour afficher le contenu des lignes des cellules vides
    Par BUX07 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/08/2012, 15h48
  2. Réponses: 13
    Dernier message: 25/07/2007, 20h03
  3. Réponses: 3
    Dernier message: 21/03/2007, 14h15
  4. [DisplayTag] vs 1.1 Prob de répétition du contenu des lignes
    Par yannick101 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/07/2006, 09h50

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