Freigeben über


Arbeiten mit Tabellen (WordprocessingML)

Letzte Änderung: Montag, 7. März 2011

Gilt für: Excel 2010 | Office 2010 | PowerPoint 2010 | Word 2010

In diesem Thema wird die Open XML SDK 2.0-Klasse Table und ihre Beziehung zum Open XML-Dateiformatschema für WordprocessingML erläutert.

Tabellen in WordprocessingML

Im folgenden Text aus der Spezifikation ISO/IEC 29500 wird das Open XML WordprocessingML-Tabellenelement eingeführt.

Ein weiterer Inhaltstyp auf Blockebene in WordprocessingML, eine Tabelle, besteht aus einer Reihe von Absätzen (und anderen Inhalten auf Blockebene), die in Zeilen und Spalten angeordnet sind.

Tabellen in WordprocessingML werden über das tbl-Element definiert, das analog zum HTML-Tag <table> ist. Das Tabellenelement gibt die Position einer Tabelle im Dokument an.

Ein tbl-Element verfügt über zwei Elemente, die seine Eigenschaften definieren: tblPr, in dem der Satz von tabellenweiten Eigenschaften (wie Formatvorlage und Breite) definiert ist, und tblGrid, in dem das Rasterlayout der Tabelle definiert ist. Ein tbl-Element kann auch eine beliebige Anzahl (ungleich Null) von Zeilen enthalten, wobei jede Zeile durch ein tr-Element angegeben wird. Jedes tr-Element kann eine beliebige Anzahl (ungleich Null) von Zellen enthalten, wobei jede Zelle durch ein tc-Element angegeben wird.

© ISO/IEC29500: 2008.

In der folgenden Tabelle sind einige der Open XML SDK-Klassen aufgeführt, die beim Arbeiten mit Tabellen am häufigsten verwendet werden.

XML-Element

Open XML SDK 2.0-Klasse

gridCol

GridColumn

tblGrid

TableGrid

tblPr

TableProperties

tc

TableCell

tr

TableRow

Table-Klasse

Die OXML SDK-Klasse Table stellt das <tbl>-Element dar, das wie oben erläutert im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Verwenden Sie ein Table-Objekt, um eine einzelne Tabelle in einem WordprocessingML-Dokument zu bearbeiten.

TableProperties-Klasse

Die OXML SDK-Klasse TableProperties stellt das <tblPr>-Element dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Das <tblPr>-Element definiert die tabellenweiten Eigenschaften einer Tabelle. Verwenden Sie ein TableProperties-Objekt, um tabellenweite Eigenschaften für eine Tabelle in einem WordprocessingML-Dokument festzulegen.

TableGrid-Klasse

Die OXML SDK-Klasse TableGrid stellt das <tblGrid>-Element dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Zusammen mit untergeordneten Rasterspaltenelementen (<gridCol>, "grid column") definiert das <tblGrid>-Element die Spalten einer Tabelle und gibt die Standardbreite von Tabellenzellen in den Spalten an. Verwenden Sie ein TableGrid-Objekt, um die Spalten einer Tabelle in einem WordprocessingML-Dokument zu definieren.

GridColumn-Klasse

Die OXML SDK-Klasse GridColumn stellt das Rasterspaltenelement (<gridCol>) dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Das <gridCol>-Element ist ein untergeordnetes Element des <tblGrid>-Elements und definiert eine einzelne Spalte einer Tabelle in einem WordprocessingML-Dokument. Verwenden Sie die GridColumn-Klasse, um eine einzelne Spalte in einem WordprocessingML-Dokument zu bearbeiten.

TableRow-Klasse

Die OXML SDK-Klasse TableRow stellt das Tabellenzeilenelement (<tr>, "table row") dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokuments definiert ist. Das <tr>-Element definiert eine Zeile einer Tabelle in einem WordprocessingML-Dokument, analog zum <tr>-Tag in HTML. Auf eine Tabellenzeile kann auch Formatierung angewendet werden. Dafür wird ein Tabellenzeileneigenschaften-Element (<trPr>, "table row properties") verwendet. Die OXML SDK-Klasse TableRowProperties stellt das <trPr>-Element dar.

TableCell-Klasse

Die OXML SDK-Klasse TableCell stellt das Tabellenzellenelement (<tc>, "table cell") dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokuments definiert ist. Das <tc>-Element definiert eine Zelle einer Tabelle in einem WordprocessingML-Dokument, analog zum <td>-Tag in HTML. Auf eine Tabellenzelle kann auch Formatierung angewendet werden. Dafür wird ein Tabellenzelleneigenschaften-Element (<tcPr>, "table cell properties") verwendet. Die OXML SDK-Klasse TableCellProperties stellt das <tcPr>-Element dar.

Beispiel

Im folgenden Code wird eine Tabelle mit 1 Zeile und 3 Spalten in ein Dokument eingefügt.

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

Bei Ausführung des Codes wird folgende XML in das im vorherigen Code angegebene WordprocessingML-Dokument geschrieben.

<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>

Siehe auch

Konzepte

Informationen zum Open XML SDK 2.0 für Microsoft Office

Struktur eines WordprocessingML-Dokuments

Arbeiten mit Absätzen

Arbeiten mit Läufen