Appliquer le formatage du tableau
Chaque élément d’un tableau peut être appliqué avec un formatage différent. Par exemple, le formatage du tableau sera appliqué à l’ensemble du tableau, le formatage des lignes à des lignes particulières uniquement, le formatage des cellules à certaines cellules uniquement.
Aspose.Words fournit un API riche pour récupérer et appliquer le formatage à un tableau. Vous pouvez utiliser les nœuds Table, RowFormat et CellFormat pour définir le formatage.
Dans cet article, nous expliquerons comment appliquer le formatage à différents nœuds de tableau et quels paramètres de formatage de tableau sont pris en charge par Aspose.Words.
Appliquer le formatage à différents nœuds
Dans cette section, nous examinerons l’application du formatage à différents nœuds de table.
Formatage au niveau du tableau
Pour appliquer une mise en forme à un tableau, vous pouvez utiliser les propriétés disponibles sur le nœud Table correspondant à l’aide des classes Table, PreferredWidth et TableCollection.
Les images ci-dessous montrent une représentation des fonctionnalités de formatage Table en Microsoft Word et de leurs propriétés correspondantes en Aspose.Words.
L’exemple de code suivant montre comment appliquer une bordure de plan à un tableau:
L’exemple de code suivant montre comment créer une table avec toutes les bordures activées (grille):
Formatage au niveau des lignes
Le formatage Au niveau de la ligne peut être contrôlé à l’aide des classes Row, RowFormat et RowCollection.
Les images ci-dessous montrent une représentation des fonctionnalités de formatage Row en Microsoft Word et de leurs propriétés correspondantes en Aspose.Words.
L’exemple de code suivant montre comment modifier le formatage des lignes du tableau:
Formatage au niveau des cellules
Le formatage au niveau des cellules est contrôlé par les classes Cell, CellFormat et CellCollection.
Notez qu’un Cell ne peut être qu’un nœud enfant d’un Row. En même temps, il doit y avoir au moins un Paragraph dans le Cell pour que le formatage puisse lui être appliqué.
En plus du Paragraph, vous pouvez également insérer un Table dans un Cell.
Les images ci-dessous montrent une représentation des fonctionnalités de formatage Cell en Microsoft Word et de leurs propriétés correspondantes en Aspose.Words.
L’exemple de code suivant montre comment modifier le formatage d’une cellule de tableau:
L’exemple de code suivant montre comment définir la quantité d’espace (en points) à ajouter à gauche/en haut/à droite/en bas du contenu de la cellule:
Spécifier les hauteurs de ligne
Le moyen le plus simple de définir la hauteur des lignes consiste à utiliser le DocumentBuilder. À l’aide des propriétés RowFormat appropriées, vous pouvez définir le paramètre de hauteur par défaut ou appliquer une hauteur différente pour chaque ligne du tableau.
Dans Aspose.Words, la hauteur des lignes du tableau est contrôlée par:
- la propriété hauteur de ligne – Height
- la propriété de la règle de hauteur pour la ligne donnée – HeightRule
Dans le même temps, une hauteur différente peut être définie pour chaque rangée – cela vous permet de contrôler largement les paramètres de la table.
L’exemple de code suivant montre comment créer un tableau contenant une seule cellule et appliquer la mise en forme des lignes:
Spécifier les largeurs de tableau et de cellule
Un tableau dans un document Microsoft Word propose plusieurs manières différentes de redimensionner le tableau et les cellules individuelles. Ces propriétés permettent un contrôle considérable sur l’apparence et le comportement du tableau, de sorte que Aspose.Words prend en charge le comportement des tableaux, comme dans Microsoft Word.
Il est important de savoir que les éléments du tableau présentent plusieurs propriétés différentes qui peuvent affecter la manière dont la largeur du tableau global, ainsi que celle des cellules individuelles, est calculée:
- Largeur préférée sur la table
- Largeur préférée sur les cellules individuelles
- Autoriser l’ajustement automatique sur la table
Cet article détaille le fonctionnement des différentes propriétés de calcul de la largeur du tableau et comment obtenir un contrôle total sur le calcul de la largeur du tableau. C’est particulièrement utile à connaître dans les cas où la disposition du tableau n’apparaît pas comme prévu.
Dans la plupart des cas, il est recommandé de privilégier la cellule préférée à la largeur du tableau. La largeur de cellule préférée est plus conforme à la spécification du format DOCX ainsi qu’au modèle Aspose.Words.
La largeur de cellule est en fait une valeur calculée pour le format DOCX. La largeur réelle des cellules peut dépendre de nombreux facteurs. Par exemple, la modification des marges de la page ou de la largeur préférée du tableau peut affecter la largeur réelle des cellules.
La largeur de cellule préférée est une propriété de cellule stockée dans le document. Cela ne dépend de rien et ne change pas lorsque vous modifiez le tableau ou d’autres propriétés de la cellule.
Comment utiliser la largeur préférée
La largeur souhaitée d’un tableau ou de cellules individuelles est définie via la propriété de largeur préférée, qui correspond à la taille à laquelle un élément s’efforce de s’adapter. Autrement dit, la largeur préférée peut être spécifiée pour l’ensemble du tableau ou pour des cellules individuelles. Dans certaines situations, il peut ne pas être possible d’ajuster exactement cette largeur, mais la largeur réelle sera proche de cette valeur dans la plupart des cas.
Le type et la valeur de largeur préférée appropriés sont définis à l’aide des méthodes de la classe PreferredWidth:
- la méthode Auto pour spécifier auto ou “aucune largeur préférée”
- la méthode FromPercent pour spécifier une largeur en pourcentage
- la méthode FromPoints pour préciser la largeur en points
Les images ci-dessous montrent une représentation des fonctionnalités de réglage de largeur préférées dans Microsoft Word et de leurs propriétés correspondantes dans Aspose.Words.
Un exemple de la façon dont ces options sont appliquées à un tableau réel dans un document peut être vu dans l’image ci-dessous.
Spécifiez le tableau préféré ou la largeur de cellule
Dans Aspose.Words, les largeurs des tableaux et des cellules sont définies à l’aide des propriétés Table.PreferredWidth et CellFormat.PreferredWidth, avec des options disponibles dans l’énumération PreferredWidthType:
- Auto, ce qui équivaut à aucun ensemble de largeurs préférées
- Percent, qui ajuste l’élément par rapport à l’espace disponible dans la taille de la fenêtre ou du conteneur, et recalcule la valeur lorsque la largeur disponible change
- Points, qui correspond à un élément de la largeur spécifiée en points
L’utilisation de la propriété Table.PreferredWidth ajustera sa largeur préférée par rapport à son conteneur: page, colonne de texte ou cellule externe du tableau s’il s’agit d’un tableau imbriqué.
L’exemple de code suivant montre comment configurer le tableau pour qu’il s’ajuste automatiquement à 50 % de la largeur de la page:
L’utilisation de la propriété CellFormat.PreferredWidth sur une cellule donnée ajustera sa largeur préférée.
L’exemple de code suivant montre comment définir les différents paramètres de largeur préférés:
Rechercher le type et la valeur de largeur préférés
Vous pouvez utiliser les propriétés Type et Value pour trouver les détails de largeur préférés du tableau ou de la cellule souhaitée.
L’exemple de code suivant montre comment récupérer le type de largeur préféré d’une cellule de tableau:
Comment définir l’ajustement automatique
La propriété AllowAutoFit permet aux cellules d’un tableau de s’agrandir et de se réduire selon un critère sélectionné. Par exemple, vous pouvez utiliser l’option Ajustement automatique à la fenêtre pour ajuster le tableau à la largeur de la page et l’option Ajustement automatique au contenu pour permettre à chaque cellule de s’agrandir ou de se réduire en fonction de son contenu.
Par défaut, Aspose.Words insère une nouvelle table en utilisant Ajustement automatique à la fenêtre. Le tableau sera dimensionné en fonction de la largeur de page disponible. Pour redimensionner un tableau, vous pouvez appeler la méthode AutoFit. Cette méthode accepte une énumération AutoFitBehavior qui spécifie le type d’ajustement automatique appliqué à la table.
Il est important de savoir que la méthode d’ajustement automatique est en réalité un raccourci qui applique simultanément différentes propriétés au tableau. Ce sont des propriétés qui donnent réellement au tableau le comportement observé. Nous discuterons de ces propriétés pour chaque option d’ajustement automatique.
L’exemple de code suivant montre comment définir un tableau pour réduire ou agrandir chaque cellule en fonction de son contenu:
Ajuster automatiquement le tableau à la fenêtre
Lorsque l’ajustement automatique d’une fenêtre est appliqué à une table, les opérations suivantes sont réellement effectuées en arrière-plan:
- La propriété Table.AllowAutoFit est activée pour redimensionner automatiquement les colonnes pour les adapter au contenu disponible, en utilisant une valeur Table.PreferredWidth de 100 %
- CellFormat.PreferredWidth est supprimé de toutes les cellules du tableau
Notez que ceci est légèrement différent du comportement Microsoft Word, où la largeur préférée de chaque cellule est définie sur des valeurs appropriées en fonction de leur taille et de leur contenu actuels. Aspose.Words ne met pas à jour la largeur préférée, elle est donc simplement effacée.
- Les largeurs de colonnes sont recalculées pour le contenu actuel du tableau – le résultat final est un tableau qui occupe toute la largeur disponible
- La largeur des colonnes du tableau change automatiquement à mesure que l’utilisateur modifie le texte
L’exemple de code suivant montre comment ajuster automatiquement un tableau à la largeur de la page:
Ajuster automatiquement le tableau au contenu
Lorsque le contenu du tableau est automatiquement ajusté, les étapes suivantes sont réellement effectuées en arrière-plan:
-
La propriété Table.AllowAutoFit est activée pour redimensionner automatiquement chaque cellule en fonction de son contenu
-
La largeur de tableau préférée est supprimée de Table.PreferredWidth, CellFormat.PreferredWidth est supprimé pour chaque cellule du tableau
Notez que cette option d’ajustement automatique supprime la largeur préférée des cellules, tout comme dans Microsoft Word. Si vous souhaitez conserver la taille des colonnes et augmenter ou diminuer les colonnes pour les adapter au contenu, vous devez définir la propriété Table.AllowAutoFit sur True seule plutôt que d’utiliser le raccourci d’ajustement automatique. -
Les largeurs de colonnes sont recalculées pour le contenu actuel du tableau – le résultat final est un tableau dans lequel les largeurs de colonnes et la largeur du tableau entier sont automatiquement redimensionnées pour s’adapter au mieux au contenu lorsque l’utilisateur modifie le texte
L’exemple de code suivant montre comment ajuster automatiquement une table à son contenu:
Désactivez l’ajustement automatique dans le tableau et utilisez des largeurs de colonne fixes
Si l’ajustement automatique d’un tableau est désactivé et que des largeurs de colonnes fixes sont utilisées à la place, les étapes suivantes sont effectuées:
-
La propriété Table.AllowAutoFit est désactivée afin que les colonnes ne s’agrandissent pas ou ne se réduisent pas à leur contenu
-
La largeur préférée de l’ensemble du tableau est supprimée de Table.PreferredWidth, CellFormat.PreferredWidth est supprimé de toutes les cellules du tableau
-
Le résultat final est un tableau dont les largeurs de colonnes sont déterminées par la propriété CellFormat.Width et dont les colonnes ne sont pas automatiquement redimensionnées lorsque l’utilisateur saisit du texte ou lorsque la page est redimensionnée
L’exemple de code suivant montre comment désactiver l’ajustement automatique et activer la largeur fixe pour la table spécifiée:
Ordre de priorité lors du calcul de la largeur des cellules
Aspose.Words permet aux utilisateurs de définir la largeur d’un tableau ou d’une cellule via plusieurs objets, y compris CellFormat – sa propriété Width est en grande partie héritée des versions précédentes, cependant, elle reste utile pour simplifier la définition de la largeur des cellules.
Il est important de savoir que la propriété CellFormat.Width fonctionne différemment selon laquelle des autres propriétés de largeur existe déjà dans le tableau.
Aspose.Words utilise l’ordre suivant pour calculer les largeurs de cellules:
Commande | Propriété | Description |
---|---|---|
1 | AllowAutoFit est déterminé | Si AutoFit est activé: - le tableau peut s’étendre au-delà de la largeur préférée pour s’adapter au contenu – il ne rétrécit généralement pas en dessous de la largeur préférée - toute modification de la valeur CellFormat.Width est ignorée et la cellule s’adaptera à son contenu |
2 | PreferredWidthType avec une valeur de Points ou Percent | CellFormat.Width est ignoré |
3 | PreferredWidthType avec une valeur de Auto | La valeur de CellFormat.Width est copiée et devient la largeur préférée de la cellule (en points) |
Autoriser l’espacement entre les cellules
Vous pouvez obtenir ou définir n’importe quel espace supplémentaire entre les cellules du tableau, similaire à l’option “Espacement des cellules” dans Microsoft Word. Cela peut être fait en utilisant la propriété AllowCellSpacing.
Un exemple de la façon dont ces options sont appliquées à un tableau réel dans un document peut être vu dans l’image ci-dessous.
L’exemple de code suivant montre comment définir l’espacement entre les cellules:
Appliquer des bordures et un ombrage
Les bordures et l’ombrage peuvent être appliqués soit à l’ensemble du tableau à l’aide de Table.SetBorder, Table.SetBorders et Table.SetShading, soit uniquement à des cellules spécifiques à l’aide de CellFormat.Borders et CellFormat.Shading. De plus, les bordures de lignes peuvent être définies à l’aide de RowFormat.Borders, mais l’ombrage ne peut pas être appliqué de cette manière.
Les images ci-dessous montrent les paramètres de bordure et d’ombre dans Microsoft Word et leurs propriétés correspondantes dans Aspose.Words.
L’exemple de code suivant montre comment formater un tableau et une cellule avec des bordures et des ombres différentes: