Partager via


Utilisation des tables WordprocessingML

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

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 de table> HTML<. L’élément tableau spécifie l’emplacement d’un tableau présent dans le document.

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

© ISO/IEC29500: 2008.

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 Table du Kit de développement logiciel (SDK) 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 TableProperties du Kit de développement logiciel (SDK) 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 TableGrid du Kit de développement logiciel (SDK) 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 grid column (<gridCol>), l’élément <tblGrid> définit les colonnes d’un tableau et spécifie la largeur par défaut des cellules du tableau dans les colonnes. Utilisez un objet TableGrid pour définir les colonnes d’un tableau dans un document WordprocessingML.

Classe GridColumn

La classe GridColumn du Kit de développement logiciel (SDK) Open XML représente l’élément grid column (<gridCol>) 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 seule colonne dans un tableau dans un document WordprocessingML. Utilisez la classe GridColumn pour manipuler une colonne individuelle dans un document WordprocessingML.

Classe TableRow

La classe TableRow du Kit de développement logiciel (SDK) Open XML représente l’élément de ligne de table (<tr>) 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, analogue à la <balise tr> en HTML. Une ligne de tableau peut également être mise en forme à l’aide d’un élément de propriétés de ligne de table (<trPr>). La classe TableRowProperties du Kit de développement logiciel (SDK) Open XML représente l’élément <trPr> .

Classe TableCell

La classe TableCell du Kit de développement logiciel (SDK) Open XML représente l’élément de cellule de tableau (<tc>) 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, semblable à la <balise td> en HTML. Une cellule de tableau peut également avoir une mise en forme qui lui est appliquée à l’aide d’un élément de propriétés de cellule de tableau (<tcPr>). La classe TableCellProperties du Kit de développement logiciel (SDK) 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.

public static void 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.
        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);
    }
}
Public Sub InsertTableInDoc(ByVal filepath As String)
    ' Open a WordprocessingDocument for editing using the filepath.
    Using wordprocessingDocument As WordprocessingDocument = _
        WordprocessingDocument.Open(filepath, True)
        ' Assign a reference to the existing document body.
        Dim body As Body = wordprocessingDocument.MainDocumentPart.Document.Body

        ' Create a table.
        Dim tbl As New Table()

        ' Set the style and width for the table.
        Dim tableProp As New TableProperties()
        Dim tableStyle As New TableStyle() With {.Val = "TableGrid"}

        ' Make the table width 100% of the page width.
        Dim tableWidth As New TableWidth() With {.Width = "5000", .Type = TableWidthUnitValues.Pct}

        ' Apply
        tableProp.Append(tableStyle, tableWidth)
        tbl.AppendChild(tableProp)

        ' Add 3 columns to the table.
        Dim tg As New TableGrid(New GridColumn(), New GridColumn(), New GridColumn())
        tbl.AppendChild(tg)

        ' Create 1 row to the table.
        Dim tr1 As New TableRow()

        ' Add a cell to each column in the row.
        Dim tc1 As New TableCell(New Paragraph(New Run(New Text("1"))))
        Dim tc2 As New TableCell(New Paragraph(New Run(New Text("2"))))
        Dim tc3 As 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)
    End Using
End Sub

À 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