Comment ajouter des lignes à un tableau dans un document MS Word en utilisant C#

Comment ajouter des lignes à un tableau dans un document MS Word en utilisant C#

Dans ce tutoriel, vous apprendrez comment ajouter des lignes à une table dans un document MS Word de manière programmatique en utilisant C#. Vous ajouterez des lignes à un index spécifié et insérerez plusieurs lignes vides à la fin de la table.

Avantages de l’ajout de lignes aux tables dans les documents Word

  1. Gestion dynamique du contenu :
    • Modifiez facilement les tables existantes pour les adapter à de nouvelles données.
  2. Flexibilité :
    • Ajustez les structures des tables de manière programmatique sans modifications manuelles.
  3. Automatisation :
    • Gérez efficacement les données des tables grâce à des scripts automatisés.

Prérequis : Préparation de l’environnement

  1. Avoir Visual Studio ou tout IDE .NET installé.
  2. Assurez-vous que la bibliothèque Aspose.Words est disponible via NuGet.

Guide étape par étape pour ajouter des lignes à une table dans Word

Étape 1 : Installer la bibliothèque Aspose.Words

Installez le package Aspose.Words en utilisant le gestionnaire de packages NuGet.

Install-Package Aspose.Words

Étape 2 : Importer les espaces de noms nécessaires

Incluez les espaces de noms Aspose.Words et Aspose.Words.Tables dans votre projet.

using Aspose.Words;
using Aspose.Words.Tables;

Étape 3 : Ouvrir le document Word

Chargez le document MS Word existant.

Document MSWordDocument = new Document(@"MS Word.docx");

Étape 4 : Accéder à la table

Obtenez la table par son index depuis le document.

Table tableToAddRowsTo = MSWordDocument.FirstSection.Body.Tables[0];

Étape 5 : Créer ou cloner une ligne

Créez une nouvelle ligne ou clonez-en une existante depuis la table.

Row row = new Row(MSWordDocument);

Étape 6 : Ajouter des cellules à la ligne

Ajoutez des cellules et du texte à la ligne.

for (int i = 0; i < 3; i++) 
{
    Cell cell = new Cell(MSWordDocument);
    cell.AppendChild(new Paragraph(MSWordDocument));
    cell.FirstParagraph.Runs.Add(new Run(MSWordDocument, "Texte dans la cellule " + i));
    row.Cells.Add(cell);
}

Étape 7 : Ajouter des lignes à la fin

Utilisez RowCollection.Add pour ajouter des lignes à la table.

tableToAddRowsTo.Rows.Add(row);

Étape 8 : Insérer des lignes à un index spécifique

Insérez des lignes à un index spécifique en utilisant RowCollection.Insert.

tableToAddRowsTo.Rows.Insert(1, row);

Étape 9 : Enregistrer le document mis à jour

Enregistrez à nouveau le document avec les lignes ajoutées.

MSWordDocument.Save(@"Added Rows to Table in MS Word.docx");

Exemple de code pour ajouter des lignes à une table dans Word

Voici le code complet pour ajouter des lignes à une table :

// Ouvrir le document MS Word
Document MSWordDocument = new Document(@"input.docx");

// Obtenir la table par index
Table tableToAddRowsTo = MSWordDocument.FirstSection.Body.Tables[0];

// Créer un nouvel objet de classe Row
Row row = new Row(MSWordDocument);

// Ajouter trois cellules à la collection de cellules de la ligne
for (int i = 0; i < 3; i++)
{
    Cell cell = new Cell(MSWordDocument);
    cell.AppendChild(new Paragraph(MSWordDocument));
    cell.FirstParagraph.Runs.Add(new Run(MSWordDocument, "Texte dans la cellule " + i));
    row.Cells.Add(cell);
}

// Insérer une nouvelle ligne après la première ligne
tableToAddRowsTo.Rows.Insert(1, row);

// Cloner une ligne existante de la table
Row cloneOfRow = (Row)tableToAddRowsTo.FirstRow.Clone(true);

// Supprimer tout le contenu de toutes les cellules
foreach (Cell cell in cloneOfRow)
{
    cell.RemoveAllChildren();
    cell.EnsureMinimum();
}

// Ajouter plusieurs lignes vides à la fin de la table
for (int i = 0; i < 10; i++)
{
    Row emptyRow = (Row)cloneOfRow.Clone(true);
    tableToAddRowsTo.Rows.Add(emptyRow);
}

// Enregistrer le document mis à jour
MSWordDocument.Save(@"output.docx");

Conclusion

Ce tutoriel a démontré comment ajouter des lignes à une table dans un document MS Word en utilisant C#. En suivant ces étapes, vous pouvez gérer et modifier efficacement les tables au sein des documents Word de manière programmatique.

 Français