Partager via


Utilisation des tables WordprocessingML

Cette rubrique décrit la classe du Kit de développement logiciel (SDK) Table Open XML et sa relation avec le schéma WordprocessingML des formats de fichiers Open XML Office.

Tableaux dans WordprocessingML

Le texte suivant de la spécification ISO/IEC 29500 présente l’élément de table WordprocessingML Open XML.

Le tableau, un autre type de contenu au niveau du bloc dans WordprocessingML, est un ensemble de paragraphes (et d’autre contenu au niveau du bloc) organisés en lignes et colonnes.

Les tables dans WordprocessingML sont définies via l’élément tbl, qui est analogue à la balise HTML <table> . L’élément tableau spécifie l’emplacement d’un tableau présent dans le document.

Un tbl élément a deux éléments qui définissent ses propriétés : tblPr, qui définit l’ensemble des propriétés à l’échelle du tableau (telles que le style et la largeur), et tblGrid, qui définit la disposition de la grille du tableau. Un tbl élément peut également contenir un nombre arbitraire de lignes différent de zéro, où chaque ligne est spécifiée avec un tr élément. Chaque tr élément peut contenir un nombre arbitraire différent de zéro de cellules, où chaque cellule est spécifiée avec un tc élément.

© ISO/IEC 29500 : 2016

Le tableau suivant répertorie quelques unes des classes Open XML SDK les plus courantes utilisées lors du travail avec les tableaux.

Élément XML Classe du Kit de développement logiciel (SDK) Open XML
Cellule de contenu Cellule de contenu
gridCol GridColumn
tblGrid TableGrid
tblPr TableProperties
Tc TableCell
tr TableRow

Classe de table du Kit de développement logiciel (SDK) Open XML

La classe du Kit de développement logiciel (SDK) Table Open XML représente l’élément <tbl> défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML, comme indiqué ci-dessus. Utilisez un objet Table pour manipuler un tableau individuel dans un document WordprocessingML.

Classe TableProperties

La classe du Kit de développement logiciel (SDK) TableProperties Open XML représente l’élément <tblPr> défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML. L’élément <tblPr> définit des propriétés à l’échelle de la table pour une table. Utilisez un objet TableProperties pour définir les propriétés à l’échelle du tableau d’un tableau dans un document WordprocessingML.

Classe TableGrid

La classe du Kit de développement logiciel (SDK) TableGrid Open XML représente l’élément <tblGrid> défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML. Conjointement avec les éléments enfants des colonnes <gridCol> de grille, l’élément <tblGrid> définit les colonnes d’un tableau et spécifie la largeur par défaut des cellules de tableau dans les colonnes. Utilisez un objet TableGrid pour définir les colonnes d’un tableau dans un document WordprocessingML.

Classe GridColumn

La classe du Kit de développement logiciel (SDK) GridColumn Open XML représente l’élément de colonne <gridCol> grid défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML. L’élément <gridCol> est un élément enfant de l’élément <tblGrid> et définit une colonne unique dans un tableau dans un document WordprocessingML. Utilisez la classe GridColumn pour manipuler une colonne individuelle dans un document WordprocessingML.

Classe TableRow

La classe du Kit de développement logiciel (SDK) TableRow Open XML représente l’élément de ligne <tr> de table défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML. L’élément <tr> définit une ligne dans un tableau dans un document WordprocessingML, à l’image de la <tr> balise en HTML. Une ligne de tableau peut également être mise en forme à l’aide d’un élément de propriétés <trPr> de ligne de tableau. La classe du Kit de développement logiciel (SDK) TableRowProperties Open XML représente l’élément <trPr> .

Classe TableCell

La classe du Kit de développement logiciel (SDK) TableCell Open XML représente l’élément de cellule <tc> de table défini dans le schéma de format de fichier Open XML pour les documents WordprocessingML. L’élément <tc> définit une cellule dans un tableau dans un document WordprocessingML, similaire à la <td> balise en HTML. Une cellule de tableau peut également être mise en forme à l’aide d’un élément de propriétés <tcPr> de cellule de tableau. La classe du Kit de développement logiciel (SDK) TableCellProperties Open XML représente l’élément <tcPr> .

Exemple de code du Kit de développement logiciel (SDK) Open XML

Le code suivant insère un tableau comprenant 1 ligne et 3 colonnes dans un document.

static string InsertTableInDoc(string filepath)
{
    // Open a WordprocessingDocument for editing using the filepath.
    using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filepath, true))
    {
        // Assign a reference to the existing document body or add one if necessary.

        if (wordprocessingDocument.MainDocumentPart is null)
        {
            wordprocessingDocument.AddMainDocumentPart();
        }

        if (wordprocessingDocument.MainDocumentPart!.Document is null)
        {
            wordprocessingDocument.MainDocumentPart.Document = new Document();
        }

        if (wordprocessingDocument.MainDocumentPart.Document.Body is null)
        {
            wordprocessingDocument.MainDocumentPart.Document.Body = new Body();
        }

        Body body = wordprocessingDocument.MainDocumentPart.Document.Body;

        // Create a table.
        Table tbl = new Table();

        // Set the style and width for the table.
        TableProperties tableProp = new TableProperties();
        TableStyle tableStyle = new TableStyle() { Val = "TableGrid" };

        // Make the table width 100% of the page width.
        TableWidth tableWidth = new TableWidth() { Width = "5000", Type = TableWidthUnitValues.Pct };

        // Apply
        tableProp.Append(tableStyle, tableWidth);
        tbl.AppendChild(tableProp);

        // Add 3 columns to the table.
        TableGrid tg = new TableGrid(new GridColumn(), new GridColumn(), new GridColumn());
        tbl.AppendChild(tg);

        // Create 1 row to the table.
        TableRow tr1 = new TableRow();

        // Add a cell to each column in the row.
        TableCell tc1 = new TableCell(new Paragraph(new Run(new Text("1"))));
        TableCell tc2 = new TableCell(new Paragraph(new Run(new Text("2"))));
        TableCell tc3 = new TableCell(new Paragraph(new Run(new Text("3"))));
        tr1.Append(tc1, tc2, tc3);

        // Add row to the table.
        tbl.AppendChild(tr1);

        // Add the table to the document
        body.AppendChild(tbl);

        return tbl.LocalName;
    }
}

À l’exécution de ce code, le code XML suivant est écrit dans le document WordprocessingML spécifié dans le code précédent.

<w:tbl>
  <w:tblPr>
    <w:tblStyle w:val="TableGrid" />
    <w:tblW w:w="5000" w:type="pct" />
  </w:tblPr>
  <w:tblGrid>
    <w:gridCol />
    <w:gridCol />
    <w:gridCol />
  </w:tblGrid>
  <w:tr>
    <w:tc>
      <w:p>
        <w:r>
          <w:t>1</w:t>
        </w:r>
      </w:p>
    </w:tc>
    <w:tc>
      <w:p>
        <w:r>
          <w:t>2</w:t>
        </w:r>
      </w:p>
    </w:tc>
    <w:tc>
      <w:p>
        <w:r>
          <w:t>3</w:t>
        </w:r>
      </w:p>
    </w:tc>
  </w:tr>
</w:tbl>

Voir aussi