Comment : remplir un tableau Word avec les propriétés du document

Visual Studio .NET 2003

L'exemple suivant crée un tableau Microsoft Office Word 2003 au début du document actif et le remplit avec les propriétés du document hôte.

Pour créer un tableau et le remplir avec les propriétés du document

  1. Allez au début du document :
    ' Visual Basic
    Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
    
    // C#
        object tableLocation = 0; 
        object missingValue = Type.Missing; 
        object styleName = "Table Colorful 2"; 
        // Move to start of document. 
        Word.Range rng = ThisDocument.Range(ref tableLocation,
            ref tableLocation);
    
  2. Insérez un titre pour le tableau et les marques de paragraphe :
    ' Visual Basic
    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With
    
    // C#
        rng.InsertBefore("Document Statistics"); 
        rng.Font.Name = "Verdana"; 
        rng.Font.Size = 16; 
        rng.InsertParagraphAfter(); 
        rng.InsertParagraphAfter(); 
        rng.SetRange(rng.End, rng.End); 
    
  3. Ajoutez le tableau :
    ' Visual Basic
    rng.Tables.Add( _
        Range:=ThisDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)
    
    // C#
        rng.Tables.Add(ThisDocument.Paragraphs[2].Range,
            3, 2, ref missingValue, ref missingValue); 
        Word.Table tbl = ThisDocument.Tables[1]; 
    
  4. Mettez le tableau en forme et appliquez un style :
    ' Visual Basic
    With ThisDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Colorful 2"
    
    // C#
        tbl.Range.Font.Size = 12; 
        tbl.Columns.DistributeWidth(); 
        tbl.set_Style(ref styleName);
    
  5. Insérez les propriétés du document dans les cellules :
    ' Visual Basic
    With ThisDocument.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
        .Cell(2, 1).Range.Text = "Number of Words"
        .Cell(2, 2).Range.Text = ThisDocument.Words.Count.ToString
        .Cell(3, 1).Range.Text = "Number of Characters"
        .Cell(3, 2).Range.Text = ThisDocument.Characters.Count.ToString
        .Select()
    
    // C#
        tbl.Cell(1, 1).Range.Text = "Document Property"; 
        tbl.Cell(1, 2).Range.Text = "Value"; 
        tbl.Cell(2, 1).Range.Text = "Number of Words"; 
        tbl.Cell(2, 2).Range.Text = ThisDocument.Words.Count.ToString(); 
        tbl.Cell(3, 1).Range.Text = "Number of Characters"; 
        tbl.Cell(3, 2).Range.Text = 
            ThisDocument.Characters.Count.ToString(); 
        tbl.Select();
    

La méthode complète se présente comme suit :

' Visual Basic
Friend Sub CreateTable()
    ' Move to start of document.
    Dim rng As Word.Range = _
        ThisDocument.Range(Start:=0, End:=0)

    ' Insert a title for the table and paragraph marks.
    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With

    ' Add the table.
    rng.Tables.Add( _
        Range:=ThisDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)

    ' Format the table and apply a style.
    With ThisDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Colorful 2"

        ' Insert document properties into cells.
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
        .Cell(2, 1).Range.Text = "Number of Words"
        .Cell(2, 2).Range.Text = ThisDocument.Words.Count.ToString
        .Cell(3, 1).Range.Text = "Number of Characters"
        .Cell(3, 2).Range.Text = ThisDocument.Characters.Count.ToString
        .Select()
    End With
End Sub

// C#
protected void CreateTable() 
{ 
    object tableLocation = 0; 
    object missingValue = Type.Missing; 
    object styleName = "Table Colorful 2"; 
    // Move to start of document. 
    Word.Range rng = ThisDocument.Range(ref tableLocation,
        ref tableLocation); 

    // Insert a title for the table and paragraph marks. 
    rng.InsertBefore("Document Statistics"); 
    rng.Font.Name = "Verdana"; 
    rng.Font.Size = 16; 
    rng.InsertParagraphAfter(); 
    rng.InsertParagraphAfter(); 
    rng.SetRange(rng.End, rng.End); 

    // Add the table. 
    rng.Tables.Add(ThisDocument.Paragraphs[2].Range, 3, 2,
        ref missingValue, ref missingValue); 
    Word.Table tbl = ThisDocument.Tables[1]; 

    // Format the table and apply a style. 
    tbl.Range.Font.Size = 12; 
    tbl.Columns.DistributeWidth(); 
    tbl.set_Style(ref styleName); 

    // Insert document properties into cells. 
    tbl.Cell(1, 1).Range.Text = "Document Property"; 
    tbl.Cell(1, 2).Range.Text = "Value"; 
    tbl.Cell(2, 1).Range.Text = "Number of Words"; 
    tbl.Cell(2, 2).Range.Text = ThisDocument.Words.Count.ToString(); 
    tbl.Cell(3, 1).Range.Text = "Number of Characters"; 
    tbl.Cell(3, 2).Range.Text = ThisDocument.Characters.Count.ToString(); 
    tbl.Select(); 
}

Voir aussi

Comment : créer des tableaux Word | Comment : ajouter du texte et une mise en forme aux cellules des tableaux Word | Comment : ajouter des lignes et des colonnes à des tableaux Word | Word, objet Range | Word, objet Document | Automatisation de Word à l'aide du modèle objet Word

Afficher: