Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird die Open XML SDK-Klasse Table und ihre Beziehung zum WordprocessingML-Schema der Office Open XML-Dateiformate 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
, das den Satz von tabellenweiten Eigenschaften (z. B. Format und Breite) definiert, und tblGrid
, der das Rasterlayout der Tabelle definiert. Ein tbl
Element kann auch eine beliebige Anzahl von Zeilen ungleich 0 enthalten, wobei jede Zeile mit einem tr
-Element angegeben wird. Jedes tr
Element kann eine beliebige Anzahl von Zellen ungleich 0 enthalten, wobei jede Zelle mit einem tc
-Element angegeben wird.
© ISO/IEC 29500: 2016
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-Klasse |
---|---|
Inhaltszelle | Inhaltszelle |
gridCol | GridColumn |
tblGrid | TableGrid |
tblPr | TableProperties |
tc | TableCell |
tr | TableRow |
Open XML SDK-Tabellenklasse
Die Open XML SDK-Klasse Table stellt das Element dar, das <tbl>
wie oben beschrieben 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 Open XML SDK-Klasse TableProperties stellt das element dar, das <tblPr>
im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Das <tblPr>
-Element definiert tabellenweite Eigenschaften für eine Tabelle. Verwenden Sie ein TableProperties-Objekt, um tabellenweite Eigenschaften für eine Tabelle in einem WordprocessingML-Dokument festzulegen.
TableGrid-Klasse
Die Open XML SDK-Klasse TableGrid stellt das element dar, das <tblGrid>
im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. In Verbindung mit untergeordneten Elementen der Rasterspalte <gridCol>
definiert das <tblGrid>
-Element die Spalten für eine Tabelle und gibt die Standardbreite der Tabellenzellen in den Spalten an. Verwenden Sie ein TableGrid-Objekt, um die Spalten einer Tabelle in einem WordprocessingML-Dokument zu definieren.
GridColumn-Klasse
Die Open XML 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 in einer Tabelle in einem WordprocessingML-Dokument. Verwenden Sie die GridColumn-Klasse, um eine einzelne Spalte in einem WordprocessingML-Dokument zu bearbeiten.
TableRow-Klasse
Die Open XML SDK-Klasse TableRow stellt das Tabellenzeilenelement <tr>
dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Das <tr>
-Element definiert eine Zeile in einer Tabelle in einem WordprocessingML-Dokument, analog zum <tr>
-Tag in HTML. Eine Tabellenzeile kann auch mithilfe eines Tabellenzeileneigenschaftenelements <trPr>
formatiert werden. Die Open XML SDK-Klasse TableRowProperties stellt das <trPr>
-Element dar.
TableCell-Klasse
Die Open XML SDK-Klasse TableCell stellt das Tabellenzellenelement <tc>
dar, das im Open XML-Dateiformatschema für WordprocessingML-Dokumente definiert ist. Das <tc>
-Element definiert eine Zelle in einer Tabelle in einem WordprocessingML-Dokument, analog zum <td>
-Tag in HTML. Auf eine Tabellenzelle kann mithilfe eines Eigenschaftenelements der Tabellenzelle <tcPr>
auch formatierungsgesteuert angewendet werden. Die Open XML SDK-Klasse TableCellProperties stellt das <tcPr>
-Element dar.
Open XML SDK-Codebeispiel
Im folgenden Code wird eine Tabelle mit 1 Zeile und 3 Spalten in ein Dokument eingefügt.
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;
}
}
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>