Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !
Voir l'indexLe reporting avancé ou le paradoxe de Spock : 1-Le Starter kit du reporting avancé
Reporting avancé ou le paradoxe de Spock : 2. Comprendre la logique de formatage
Reporting avancé ou le paradoxe de Spock : 3 - Découverte de la syntaxe CSS pour les bordures
Reporting avancé ou le paradoxe de Spock : 4 - 1er Exemple avancé d’utilisation du CSS
Reporting avancé ou le paradoxe de Spock : 5 - 2ème Exemple avancé d’utilisation du CSS
Reporting avancé ou le paradoxe de Spock : 6. Gestion de la taille des colonnes
Reporting avancé ou le paradoxe de Spock : 7. Exemples de gestion de taille des colonnes (Vous êtes ici)
Reporting avancé ou le paradoxe de Spock : 8. Entête multilignes sorti dans 1 tableau XLS
Reporting avancé ou le paradoxe de Spock : 9. Entête multi lignes sorti dans 1 onglet XLS
Reporting avancé ou le paradoxe de Spock : 10. Entête multi lignes via l’outil Table
Reporting avancé ou le paradoxe de Spock : 11. Entête multi lignes via l’outil Table 2
Reporting avancé ou le paradoxe de Spock : 7. Exemples de gestion de taille des colonnes
Après avoir détaillé les options à disposition et les menus qui impactent cette largeur, voici 10 exemples cohérents ou non pour bien visualiser les effets des options.
Notez bien les cas particuliers qu’il est bon de connaître pour valider comment peut évoluer votre tableau dans le temps.
Attention ces exemples détaillent le fonctionnement pour une extraction vers PDF. Le comportement vers d’autres connecteurs peut être sensiblement différent. Notamment celui de Excel n’est pas aussi nuancé. Un chapitre dédié lui est consacré en fin de post.
Ces exemples sont présents dans le workflow joint en fin d’article.
Données de base :
A noter que la colonne D ne comporte aucun espace dans l’entête ou les données, contrairement à la colonne E qui en comporte 1. Nous verrons l’effet distinct que cela implique parfois.
1 - Table : Automatique
Colonnes : Automatique
Rendu : Tout l’espace nécessaire pour le tableau
Voici le résultat :
La taille de chaque colonne s’adapte au contenu. L’outil ne prend que ce qu’il a besoin en fonction du contenu des colonnes.
Note : Par colonne, il prend la plus grande taille nécessaire pour ne rien avoir à tronquer entre l’entête et les données. Pour mettre sous contrôle ou ajuster les tailles de colonne pensez donc à gérer les tailles des données et entêtes.
2 - Table : Pourcentage 100%
Colonnes : Automatique
Rendu : Tout l’espace nécessaire pour le tableau
Voici le résultat :
L’outil prend 100% de la largeur à disposition et réparti la taille des colonnes au prorata de leur taille respective.
Note : Pour gérer la taille des tableaux à 100%, il faut donc se reporter à l’outil Rendu qui définira plus tard la taille de la sortie. Entre un A4 et un B3 on n’a pas la même taille du coup.
3 - Table : Fixe 9cm
Colonnes : Automatique
Rendu : Tout l’espace nécessaire pour le tableau
L’outil prend 9 cm de largeur et réparti la taille des colonnes au prorata de leur taille respective. Ici, tout va bien car tout rentre dans les 9 cm.
4 - Table : Fixe 3cm
Colonnes : Automatique
Rendu : Tout l’espace nécessaire pour le tableau
L’outil prend 3 cm de largeur et réparti la taille des colonnes au prorata de leur taille respective.
Cas particulier 1 : Malheureusement, le contenu des colonnes ne rentre pas dans ces 3 cm. Il ne change pas les polices pour que cela rentre, il tronque donc. Attention dans ces cas-là, l’outil essaye de faire des retours à la ligne dès qu’il trouve un espace afin de rester dans la largeur attendue. Ceci explique qu’en colonne E on se retrouve avec 2 lignes à la fois sur les données et sur l’entête.
Cas particulier 2 : Lorsqu’une valeur ne rentre pas dans la largeur d’une colonne, il indique un ### si c’est un nombre (colonne B) ou, il la tronque si c’est une chaine de caractère (colonne D). Comme on en sur du pdf et qu’on ne peut ajuster la taille en direct. La donnée est illisible. Ce n’est pas le cas pour la sortie Excel.
5 - Table : Automatique
Colonnes : 1cm chacune
Rendu : Tout l’espace nécessaire pour le tableau
Les colonnes dont le contenu fait moins de 1 cm sont augmentées à 1 cm.
Cas particulier : Celles dont le contenu fait plus de 1 cm prennent la taille de leur contenu. Attention dans ces cas là, l’outil essaye de faire des retours à la ligne dès qu’il trouve un espace afin de rester dans les 1 cm. Ainsi la colonne D fait donc plus de 1 cm, alors que la colonne E, bénéficiant des retours à la ligne reste à 1 cm. Cette notion de retour à la ligne concerne l’entête et les données.
6 - Table : Automatique
Colonnes : 3cm chacune
Rendu : Tout l’espace nécessaire pour le tableau
Voici le résultat :
Même exemple que précédemment, mais ici tous les contenus sont de taille inférieure à la taille demandée. Leur largeur a donc été augmentée jusqu’à 3 cm même si le contenu est plus court.
7 - Table : Pourcentage 100%
Colonnes : 10% pour A et C, 20% pour B,D et E (=80% en tout)
Rendu : Tout l’espace nécessaire pour le tableau
La table est à 100%. Cela veut dire que par rapport à la taille de la sortie finale la table prendra 100% de la largeur. Cela dépend donc de ce qui est paramétré dans l’outil Rendu. Mais 100% signifie qu’il prendra toute la largeur de la feuille moins les marges.
Au sein de ces 100% de la table, le tableau fera la somme des % des colonnes à savoir 10%x2 (A et C) + 20%x3 (B, D et E) = 80%.
Ce qui explique la partie blanche à droite du tableau (qui vaut 20%) pour atteindre les 100% de la table.
On a bien aussi les colonnes A et C qui sont 2 fois plus petites que les autres colonnes (20% est 2 fois plus grand que 10%).
8 - Table : Pourcentage 100%
Colonnes : 5% pour toutes les colonnes (= 25% en tout)
Rendu : Tout l’espace nécessaire pour le tableau
La table fait ici aussi 100%, on voit qu’elle prend toute la largeur de la feuille.
Le tableau à l’intérieur est la somme des colonnes. Il prend donc 25% (=5%x5 colonnes) de la taille potentielle complète disponible sur le rendu final.
Cas particulier : les colonnes D et E n’ont pas assez de place pour afficher leur contenu dans 10%. Elles ne sont pas tronquées, comme il reste de la place disponible leur taille va faire au final plus de 5%. Comme toujours, il essaye de faire des retours à la ligne s'il y a des espaces (colonne E), mais si il ne peut pas (colonne D) il augmente la taille au-delà des 5% prévus.
Note : À anticiper si on veut avoir une largeur fixe, car cette technique ne peut pas le garantir.
9 - Table : Pourcentage 50%
Colonnes : 15% pour toutes les colonnes (= 75% en tout)
Rendu : Tout l’espace nécessaire pour le tableau
La table fait ici 50% seulement de la largeur de la page, On voit justement que la bordure noire s’arrête à la moitié de la largeur complète de la page.
Le tableau à l’intérieur fait lui 5x15%= 75% de la table. C’est bien de la table et non pas de la page. Ce sont donc 75% de 50% en largeur.
Cas particulier : les colonnes B, D et E n’ont pas assez de place pour afficher leur contenu dans 15%. Elles ne sont pas tronquées, comme il reste de la place disponible leur taille va faire au final plus de 5%. Comme toujours, il essaye de faire des retours à la ligne s'il y a des espaces (colonne E), mais s'il ne peut pas (colonne D) il augmente la taille au delà des 5% prévus. La somme de toutes ces colonnes occupe donc plus que 75%.
Note : À anticiper si on veut avoir une largeur fixe, car cette technique ne peut pas le garantir.
10 - Table : Automatique
Colonnes : Automatique
Rendu : 80x70mm
Cas particulier : 80 mm est une largeur trop faible par rapport à la taille du tableau et des marges. Ceci est un exemple qui s’applique à tous les cas où le rendu demandé via l’outil table est d’une taille supérieure à la taille de la page finale.
Il essaye donc de réduire au maximum et cette il va devoir tronquer. Comme c’est du PDF, on ne verra pas les valeurs.
C’est donc le cas lorsque le Rendu est de taille trop petite, ou la somme de la taille des colonnes supérieures à la taille de la table (cf exemple 4), ou tout autre incohérence.
Cas particulier de l’extraction vers Excel.
Je vais vous faire gagner du temps ici car nombreux sont ceux qui essayent par tous les moyens de mettre sous contrôle les colonnes dans une sortie Excel. C’est peine perdue. Peu d’options sont à disposition. L’extraction vers Excel 2007 est nettement moins fine.
Au niveau Table : Automatique, Pourcentage et Résolu n’ont aucun impacte.
Au niveau Colonne : idem.
Les seuls paramètres qui ont un impact sont la taille de la police et la taille du format de sortie.
Oubliez l’autosize ou la largeur fixe !
Après, pas de panique il suffit d’ouvrir le classeur et en 2 clics l’autosize est refait. En revanche, si vous souhaitez des tailles standards pour tous vos tableaux ce ne sera pas possible simplement.
Paradoxalement, alors qu’il n’a pas de souci de nombre de colonne à disposition, c’est en réduisant le format théorique de sortie vers Excel (de Letter à plus petit en personnalisant) qu’on peut impacter la largeur des colonnes. Il va ainsi essayer de réduire la largeur des colonnes pour rentrer dans cette plus petite zone.
Exemple :
Si il n'a pas de contrainte de taille en sortie, il prend sa taille standard en fonction du type de donnée et des données de chaque colonne.
Si on le stress en le réduisant la taille de la sortie (outil Rendu), il va réduire la taille des colonnes mais on n’a pas la main dessus. La règle est qu'il essaye de faire de l'autosize sur toutes les colonnes.
On voit sur cet exemple qu’on a pas la main sur la largeur, c’est forcément via cette technique de l’autosize. Et ce n’est pas dynamique car si les données changent cela va changer.
Si on réduit encore la taille de la sortie, il va commencer à tronquer (visuellement). Il suffira de double cliquer pour réouvrir.
D’où ces itérations pour obtenir l’étape précédente.
À noter ce post qui met à disposition via une macro une technique pour automatiser cet autosize : How to Autosize columns in excel.
J’espère pour vous que c’est plus clair. 😊
Au prochain post on attaque la génération d’entête multi lignes… Miam Miam.
Enjoy !
Pour ajouter un commentaire ici, vous devez être inscrit. Si vous êtes déjà inscrit, connectez-vous. Dans le cas contraire, inscrivez-vous puis connectez-vous.