如何:用文档属性填充 Word 表

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Word 2003

  • Word 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

下面的示例在文档的开头创建一个 Microsoft Office Word 表,并用宿主文档的属性填充该表。

填充文档级自定义项中的表

创建表并用文档属性填充该表

  1. 将范围设置为文档开头。

    Dim rng As Word.Range = Me.Range(Start:=0, End:=0)
    
    object start = 0, end = 0; 
    Word.Range rng = this.Range(ref start, ref end); 
    
  2. 插入表的标题并包括段落标记。

    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With
    
    rng.InsertBefore("Document Statistics"); 
    rng.Font.Name = "Verdana"; 
    rng.Font.Size = 16; 
    rng.InsertParagraphAfter(); 
    rng.InsertParagraphAfter(); 
    rng.SetRange(rng.End, rng.End); 
    
  3. 将表添加到文档中的该范围内。

    rng.Tables.Add(Range:=Me.Paragraphs.Item(2).Range, NumRows:=3, NumColumns:=2)
    
    rng.Tables.Add(this.Paragraphs[2].Range, 3, 2, ref missing, ref missing);
    
  4. 设置表格式并应用样式。

    With Me.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With
    
    Word.Table tbl = this.Tables[1];
    tbl.Range.Font.Size = 12; 
    tbl.Columns.DistributeWidth(); 
    
    object styleName = "Table Professional";
    tbl.set_Style(ref styleName); 
    
  5. 将文档属性插入到单元格中。

    With Me.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
    
        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()
    
        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
    
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";
    
    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text =((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();
    
    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
    

下面的示例演示整个过程。若要使用此代码,请从项目内的 ThisDocument 类中运行此代码。

Private Sub CreateDocumentPropertyTable()
    Dim rng As Word.Range = Me.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:=Me.Paragraphs.Item(2).Range, NumRows:=3, NumColumns:=2)

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

    ' Insert document properties into cells.
    With Me.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"

        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
End Sub
private void CreateDocumentPropertyTable() 
{ 
    object start = 0, end = 0; 
    Word.Range rng = this.Range(ref start, ref end); 

    // 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(this.Paragraphs[2].Range, 3, 2, ref missing, ref missing);

    // Format the table and apply a style. 
    Word.Table tbl = this.Tables[1];
    tbl.Range.Font.Size = 12; 
    tbl.Columns.DistributeWidth(); 

    object styleName = "Table Professional";
    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 = "Subject";
    tbl.Cell(2, 2).Range.Text =((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();

    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
}

填充应用程序级外接程序中的表

创建表并用文档属性填充该表

  1. 将范围设置为文档开头。

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range( _
        Start:=0, End:=0)
    
    object start = 0, end = 0;
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Range(ref start, ref end);
    
  2. 插入表的标题并包括段落标记。

    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With
    
    rng.InsertBefore("Document Statistics");
    rng.Font.Name = "Verdana";
    rng.Font.Size = 16;
    rng.InsertParagraphAfter();
    rng.InsertParagraphAfter();
    rng.SetRange(rng.End, rng.End);
    
  3. 将表添加到文档中的该范围内。

    rng.Tables.Add(Range:=Me.Application.ActiveDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)
    
    rng.Tables.Add(document.Paragraphs[2].Range, 3, 2, ref missing, ref missing);
    
  4. 设置表格式并应用样式。

    With Me.Application.ActiveDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With
    
    Word.Table tbl = document.Tables[1];
    tbl.Range.Font.Size = 12;
    tbl.Columns.DistributeWidth();
    
    object styleName = "Table Professional";
    tbl.set_Style(ref styleName);
    
  5. 将文档属性插入到单元格中。

    With Me.Application.ActiveDocument.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
    
        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()
    
        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
    
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";
    
    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();
    
    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
    

下面的示例演示整个过程。若要使用此代码,请从项目内的 ThisAddIn 类中运行此代码。

Private Sub CreateDocumentPropertyTable()
    Dim rng As Word.Range = Me.Application.ActiveDocument.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:=Me.Application.ActiveDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)

    ' Format the table and apply a style.
    With Me.Application.ActiveDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With

    ' Insert document properties into cells.
    With Me.Application.ActiveDocument.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"

        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
End Sub
private void CreateDocumentPropertyTable()
{
    object start = 0, end = 0;
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Range(ref start, ref end);

    // 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(document.Paragraphs[2].Range, 3, 2, ref missing, ref missing);

    // Format the table and apply a style. 
    Word.Table tbl = document.Tables[1];
    tbl.Range.Font.Size = 12;
    tbl.Columns.DistributeWidth();

    object styleName = "Table Professional";
    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 = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();

    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
}

请参见

任务

如何:创建 Word 表

如何:向 Word 表中的单元格添加文本和格式设置

如何:向 Word 表添加行和列

概念

了解 Office 解决方案中的可选参数