Créer un tableau dans Word en utilisant C# | Créer des tables imbriquées en C#

Les tableaux dans un document Word sont un outil puissant pour organiser et présenter les données dans un format clair et structuré. Un tableau se compose de lignes et de colonnes qui se croisent pour former des cellules pouvant contenir du texte, des nombres, des images ou d’autres éléments. Dans cet article, nous apprendrons comment créer un tableau dans des documents Word par programmation en utilisant C#. Cet article présente différentes méthodes pour créer des tables dans un fichier DOCX prises en charge par des exemples de code.

Cet article couvre les sujets suivants :

Bibliothèque C# pour créer des tableaux dans des documents Word

Pour travailler avec des tableaux dans des documents Word, nous utiliserons la bibliothèque Aspose.Words for .NET. Il s’agit d’une bibliothèque robuste qui vous permet de créer et de manipuler dynamiquement des documents Word par programmation directement dans les applications .NET.

Veuillez télécharger la DLL ou l’installer à partir de NuGet à l’aide de la commande suivante :

PM> Install-Package Aspose.Words

Créer un tableau dans un document Word en C#

Il existe deux manières de créer des tableaux dans des documents Word à l’aide d’Aspose.Words for .NET :

  • Utilisation de la classe DocumentBuilder
  • Utilisation du DOM (Document Object Model)

Vous pouvez choisir la méthode qui correspond le mieux à vos besoins. Explorons donc chacune de ces méthodes en détail.

Créer un tableau à l’aide de DocumentBuilder

La classe DocumentBuilder permet la création efficace et sans effort de documents dynamiques à partir de zéro ou la modification de documents existants. Grâce à sa gamme complète de fonctions, nous pouvons insérer de manière transparente divers éléments de contenu, notamment du texte, des cases à cocher, des objets OLE, des paragraphes, des listes, des tableaux, des images et bien d’autres.

Veuillez suivre les étapes ci-dessous pour créer un tableau dans un document Word à l’aide de la classe DocumentBuilder.

  1. Créez un objet de la classe Document.
  2. Créez un objet de la classe DocumentBuilder.
  3. Créez une nouvelle table à l’aide de la méthode StartTable().
  4. Insérez une cellule à l’aide de la méthode InsertCell().
  5. Insérez du texte dans la cellule à l’aide de la méthode Write().
  6. Répétez l’insertion de cellules et de texte dans les cellules si nécessaire.
  7. Terminez une ligne en utilisant la méthode EndRow().
  8. Terminez le tableau en utilisant la méthode EndTable().
  9. Enfin, enregistrez le document Word à l’aide de la méthode Save().

L’exemple de code suivant montre comment créer un tableau dans un document Word à l’aide de C#.

// Cet exemple de code montre comment créer un tableau dans un document Word à l'aide de C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Commencez à construire la table.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Construisez la deuxième cellule.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Appelez la méthode suivante pour terminer la ligne et démarrer une nouvelle ligne.
builder.EndRow();

// Construisez la première cellule de la deuxième ligne.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Construisez la deuxième cellule.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Signalez que nous avons fini de construire la table.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Créer un tableau dans Word à l'aide de DocumentBuilder

Créer un tableau à l’aide de DocumentBuilder

Créer une table à l’aide du modèle objet de document (DOM)

Le modèle objet de document (DOM) est une représentation en mémoire d’un document Word. Il permet un accès par programme pour lire, manipuler et modifier le contenu et le formatage d’un document Word.

Veuillez suivre les étapes ci-dessous pour créer un tableau dans un document Word à l’aide de DOM.

  1. Créez un objet de la classe Document.
  2. Créez une nouvelle table à l’aide de la classe Table().
  3. Ajoutez un tableau au corps du document à l’aide de la méthode AppendChild().
  4. Créez un objet de la classe Row et insérez-le dans la table à l’aide de la méthode Table.AppendChild(Row).
  5. Créez un objet de la classe Cell, définissez les options de formatage et ajoutez du texte à la cellule.
  6. Insérez la cellule dans la ligne à l’aide de la méthode Row.AppendChild(Cell).
  7. Après cela, répétez le processus pour autant de lignes que vous le souhaitez.
  8. Enfin, enregistrez le document Word à l’aide de la méthode Save().

L’exemple de code suivant montre comment créer un tableau dans un document Word à l’aide de C#.

// Cet exemple de code montre comment créer un tableau dans un document Word à l'aide de DOM en C#
Document doc = new Document();

// Nous commençons par créer l’objet table. Notez qu'il faut passer l'objet document
// au constructeur de chaque nœud. C'est parce que chaque nœud que nous créons doit appartenir
// à un document.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Ici, nous pourrions appeler EnsureMinimum pour créer les lignes et les cellules pour nous. Cette méthode est utilisée
// pour garantir que le nœud spécifié est valide. Dans ce cas, un tableau valide doit avoir au moins une ligne et une cellule.

// Au lieu de cela, nous nous occuperons nous-mêmes de la création de la ligne et du tableau.
// Ce serait la meilleure façon de procéder si nous créions une table dans un algorithme.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Nous pouvons maintenant appliquer tous les paramètres d'ajustement automatique.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Ajouter une cellule
row.AppendChild(cell);

// Nous répéterions ensuite le processus pour les autres cellules et lignes du tableau.
// Nous pouvons également accélérer les choses en clonant des cellules et des lignes existantes.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Enregistrez le document
doc.Save("InsertTableDirectly.docx");
Créer une table à l'aide du modèle objet de document (DOM)

Créer une table à l’aide du modèle objet de document (DOM)

Créer un tableau imbriqué dans un document Word en utilisant C#

Nous pouvons également créer un nouveau tableau dans une cellule du tableau. Voici les étapes pour créer un tableau imbriqué dans un document Word.

  1. Créez un objet de la classe Document.
  2. Créez un objet de la classe DocumentBuilder.
  3. Créez une table à l’aide de la méthode StartTable() et obtenez une référence à la table dans un objet.
  4. Insérez une cellule à l’aide de la méthode InsertCell() et obtenez une référence à la cellule dans un objet.
  5. Insérez du texte dans une cellule à l’aide de la méthode DocumentBuilder.Write().
  6. Répétez l’insertion de cellules et de texte dans les cellules si nécessaire.
  7. Terminez le tableau lorsque vous avez inséré toutes les lignes.
  8. Déplacez le contrôle à l’intérieur de la cellule souhaitée à l’aide de la méthode MoveTo(cell.FirstParagraph).
  9. Créez un autre tableau en insérant des cellules et terminez le tableau une fois terminé.
  10. Enfin, enregistrez le document Word à l’aide de la méthode Save().

L’exemple de code suivant montre comment créer un tableau imbriqué dans un document Word à l’aide de C#.

// Cet exemple de code montre comment créer un tableau imbriqué dans un document Word à l'aide de C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// Cet appel est important pour créer une table imbriquée au sein de la première table. 
// Sans cet appel, les cellules insérées ci-dessous seront ajoutées au tableau externe.
builder.EndTable();

// Accédez à la première cellule du tableau externe.
builder.MoveTo(cell.FirstParagraph);

// Construisez la table intérieure.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Enregistrez le document
doc.Save("NestedTable.docx");
Créer un tableau imbriqué dans un document Word en utilisant C#

Créer un tableau imbriqué dans un document Word en utilisant C#

Cloner une table existante dans un document Word en C#

Nous pouvons cloner un tableau existant dans un document Word en suivant les étapes ci-dessous :

  1. Chargez un document existant avec un tableau à l’aide de la classe Document.
  2. Récupérez la table dans un objet à l’aide de la méthode GetChild(NodeType.TABLE, int, boolean).
  3. Clonez une table à l’aide de la méthode Table.Clone(True).
  4. Insérez une table clonée à l’aide de la méthode Table.ParentNode.InsertAfter().
  5. Insérez un paragraphe vide entre les tableaux à l’aide de la méthode Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
  6. Enfin, enregistrez le document Word à l’aide de la méthode Save().

L’exemple de code suivant montre comment cloner une table dans un document Word à l’aide de C#.

// Cet exemple de code montre comment cloner une table existante dans un document Word à l'aide de C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Clonez le tableau et insérez-le dans le document après l'original.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Insérez un paragraphe vide entre les deux tableaux,
// sinon, ils seront combinés en un seul lors de la sauvegarde, cela a à voir avec la validation du document.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Cloner une table existante dans un document Word en C#

Cloner une table existante dans un document Word en C#

Créer un tableau dans un document Word à partir de HTML

Nous pouvons également créer un tableau dans un document Word à l’aide d’une chaîne HTML en suivant les étapes ci-dessous :

  1. Créez un objet de la classe Document.
  2. Créez un objet de la classe DocumentBuilder.
  3. Insérez la chaîne HTML du tableau dans le document à l’aide de la méthode DocumentBuilder.InsertHtml(String).
  4. Enfin, enregistrez le document à l’aide de la méthode Document.Save().

L’exemple de code suivant montre comment insérer un tableau HTML dans un document Word à l’aide de C#.

// Cet exemple de code montre comment insérer un tableau HTML dans un document Word à l'aide de C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Notez qu'AutoFitSettings ne s'applique pas aux tableaux insérés à partir de HTML.
builder.InsertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

doc.Save("InsertTableFromHtml.docx");
Créer un tableau dans un document Word à partir de HTML

Créer un tableau dans un document Word à partir de HTML

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire pour utiliser Aspose.Words for .NET sans limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à créer des tableaux dans des documents Word en utilisant C#. Nous avons exploré diverses méthodes pour créer des tables par programmation à l’aide de C#. Nous avons également vu comment créer des tableaux imbriqués ou cloner dynamiquement les tableaux existants dans des documents Word. En outre, vous pouvez en savoir plus et explorer diverses autres fonctionnalités de la bibliothèque en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également