Table

Table class

Stellt eine Tabelle in einem Word-Dokument dar.

Um mehr zu erfahren, besuchen Sie dieArbeiten mit Tabellen Dokumentationsartikel.

public class Table : CompositeNode

Konstrukteure

NameBeschreibung
Table(DocumentBase)Initialisiert eine neue Instanz desTable Klasse.

Eigenschaften

NameBeschreibung
AbsoluteHorizontalDistance { get; set; }Ruft die absolute horizontale Position der schwebenden Tabelle ab oder legt sie in Punkten fest, die durch die Tabelleneigenschaften angegeben wird. Der Standardwert ist 0.
AbsoluteVerticalDistance { get; set; }Ruft die absolute vertikale Position der schwebenden Tabelle ab oder legt sie in Punkten fest, die durch die Tabelleneigenschaften angegeben wird. Der Standardwert ist 0.
Alignment { get; set; }Gibt an, wie eine Inline-Tabelle im Dokument ausgerichtet wird.
AllowAutoFit { get; set; }Ermöglicht Microsoft Word und Aspose.Words, die Größe von Zellen in einer Tabelle automatisch an ihren Inhalt anzupassen.
AllowCellSpacing { get; set; }Ruft die Option „Abstand zwischen Zellen zulassen“ ab oder legt diese fest.
AllowOverlap { get; }Gibt an, ob eine schwebende Tabelle anderen schwebenden Objekten im Dokument erlauben soll, ihre Ausdehnungen bei der Anzeige zu überlappen. Der Standardwert istWAHR .
Bidi { get; set; }Ruft ab oder legt fest, ob es sich um eine von rechts nach links verlaufende Tabelle handelt.
BottomPadding { get; set; }Ruft den Abstand (in Punkten) ab, der unterhalb des Zellinhalts hinzugefügt werden soll, oder legt diesen fest.
CellSpacing { get; set; }Ruft den Abstand (in Punkten) zwischen den Zellen ab oder legt ihn fest.
Count { get; }Ruft die Anzahl der unmittelbar untergeordneten Elemente dieses Knotens ab.
CustomNodeId { get; set; }Gibt die benutzerdefinierte Knotenkennung an.
Description { get; set; }Ruft die Beschreibung dieser Tabelle ab oder legt sie fest. Bietet eine alternative Textdarstellung der in der Tabelle enthaltenen Informationen.
DistanceBottom { get; set; }Ruft den Abstand zwischen Tabellenunterseite und umgebendem Text in Punkten ab oder legt ihn fest.
DistanceLeft { get; set; }Ruft den Abstand zwischen der linken Tabellenhälfte und dem umgebenden Text in Punkten ab oder legt ihn fest.
DistanceRight { get; set; }Ruft den Abstand zwischen der rechten Tabellenseite und dem umgebenden Text in Punkten ab oder legt ihn fest.
DistanceTop { get; set; }Ruft den Abstand zwischen der Tabellenoberfläche und dem umgebenden Text in Punkten ab oder legt ihn fest.
virtual Document { get; }Ruft das Dokument ab, zu dem dieser Knoten gehört.
FirstChild { get; }Ruft das erste untergeordnete Element des Knotens ab.
FirstRow { get; }Gibt den erstenRow Knoten in der Tabelle.
HasChildNodes { get; }RückgabenWAHR wenn dieser Knoten untergeordnete Knoten hat.
HorizontalAnchor { get; set; }Ruft das Basisobjekt ab, aus dem die horizontale Positionierung der schwebenden Tabelle berechnet werden soll. Der Standardwert istColumn .
override IsComposite { get; }RückgabenWAHR da dieser Knoten untergeordnete Knoten haben kann.
LastChild { get; }Ruft das letzte untergeordnete Element des Knotens ab.
LastRow { get; }Gibt die letzteRow Knoten in der Tabelle.
LeftIndent { get; set; }Ruft den Wert ab oder legt ihn fest, der den linken Einzug der Tabelle darstellt.
LeftPadding { get; set; }Ruft den Abstand (in Punkten) ab, der links vom Zelleninhalt hinzugefügt werden soll, oder legt diesen fest.
NextSibling { get; }Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
override NodeType { get; }RückgabenTable .
ParentNode { get; }Ruft den unmittelbar übergeordneten Knoten dieses Knotens ab.
PreferredWidth { get; set; }Ruft die bevorzugte Breite der Tabelle ab oder legt sie fest.
PreviousSibling { get; }Ruft den Knoten ab, der diesem Knoten unmittelbar vorausgeht.
Range { get; }Gibt einenRangeObjekt, das den Teil eines Dokuments darstellt, der in diesem Knoten enthalten ist.
RelativeHorizontalAlignment { get; set; }Ruft die relative horizontale Ausrichtung der schwebenden Tabelle ab oder legt sie fest.
RelativeVerticalAlignment { get; set; }Ruft die relative vertikale Ausrichtung der schwebenden Tabelle ab oder legt sie fest.
RightPadding { get; set; }Ruft den Abstand (in Punkten) ab, der rechts vom Zelleninhalt hinzugefügt werden soll, oder legt diesen fest.
Rows { get; }Bietet typisierten Zugriff auf die Zeilen der Tabelle.
Style { get; set; }Ruft den auf diese Tabelle angewendeten Tabellenstil ab oder legt ihn fest.
StyleIdentifier { get; set; }Ruft die gebietsschemaunabhängige Stilkennung des auf diese Tabelle angewendeten Tabellenstils ab oder legt diese fest.
StyleName { get; set; }Ruft den Namen des auf diese Tabelle angewendeten Tabellenstils ab oder legt ihn fest.
StyleOptions { get; set; }Ruft Bitflags ab oder legt diese fest, die angeben, wie ein Tabellenstil auf diese Tabelle angewendet wird.
TextWrapping { get; set; }Ruft ab oder legt festTextWrapping für Tabelle.
Title { get; set; }Ruft den Titel dieser Tabelle ab oder legt ihn fest. Bietet eine alternative Textdarstellung der in der Tabelle enthaltenen Informationen.
TopPadding { get; set; }Ruft den Abstand (in Punkten) ab, der über dem Inhalt der Zellen hinzugefügt werden soll, oder legt diesen fest.
VerticalAnchor { get; set; }Ruft das Basisobjekt ab, aus dem die vertikale Positionierung der schwebenden Tabelle berechnet werden soll. Der Standardwert istMargin .

Methoden

NameBeschreibung
override Accept(DocumentVisitor)Nimmt einen Besucher auf.
override AcceptEnd(DocumentVisitor)Akzeptiert einen Besucher für den Besuch des Tischendes.
override AcceptStart(DocumentVisitor)Akzeptiert einen Besucher für den Besuch des Tabellenanfangs.
AppendChild<T>(T)Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten für diesen Knoten hinzu.
AutoFit(AutoFitBehavior)Ändert die Größe der Tabelle und der Zellen entsprechend dem angegebenen Auto-Fit-Verhalten.
ClearBorders()Entfernt alle Tabellen- und Zellenränder dieser Tabelle.
ClearShading()Entfernt alle Schattierungen aus der Tabelle.
Clone(bool)Erstellt ein Duplikat des Knotens.
ConvertToHorizontallyMergedCells()Konvertiert horizontal durch Breite verbundene Zellen in Zellen, die durchHorizontalMerge .
CreateNavigator()Erstellt einen Navigator, der zum Durchlaufen und Lesen von Knoten verwendet werden kann.
EnsureMinimum()Wenn die Tabelle keine Zeilen hat, wird eine erstellt und angehängtRow .
GetAncestor(NodeType)Ruft den ersten Vorfahren des angegebenenNodeType .
GetAncestor(Type)Ruft den ersten Vorgänger des angegebenen Objekttyps ab.
GetChild(NodeType, int, bool)Gibt einen N-ten untergeordneten Knoten zurück, der dem angegebenen Typ entspricht.
GetChildNodes(NodeType, bool)Gibt eine Live-Sammlung von untergeordneten Knoten zurück, die dem angegebenen Typ entsprechen.
GetEnumerator()Bietet Unterstützung für die Iteration des For-Each-Stils über die untergeordneten Knoten dieses Knotens.
override GetText()Ruft den Text dieses Knotens und aller seiner untergeordneten Knoten ab.
IndexOf(Node)Gibt den Index des angegebenen untergeordneten Knotens im untergeordneten Knoten-Array zurück.
InsertAfter<T>(T, Node)Fügt den angegebenen Knoten unmittelbar nach dem angegebenen Referenzknoten ein.
InsertBefore<T>(T, Node)Fügt den angegebenen Knoten unmittelbar vor dem angegebenen Referenzknoten ein.
NextPreOrder(Node)Ruft den nächsten Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab.
PrependChild<T>(T)Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten für diesen Knoten hinzu.
PreviousPreOrder(Node)Ruft den vorherigen Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab.
Remove()Entfernt sich selbst vom übergeordneten Element.
RemoveAllChildren()Entfernt alle untergeordneten Knoten des aktuellen Knotens.
RemoveChild<T>(T)Entfernt den angegebenen untergeordneten Knoten.
RemoveSmartTags()Entfernt alleSmartTag Nachkommenknoten des aktuellen Knotens.
SelectNodes(string)Wählt eine Liste von Knoten aus, die dem XPath-Ausdruck entsprechen.
SelectSingleNode(string)Wählt den erstenNode das dem XPath-Ausdruck entspricht.
SetBorder(BorderTypeLineStyle, double, Color, bool)Legt für den angegebenen Tabellenrahmen den angegebenen Linienstil, die angegebene Breite und Farbe fest.
SetBorders(LineStyle, double, Color)Legt für alle Tabellenränder den angegebenen Linienstil, die angegebene Breite und Farbe fest.
SetShading(TextureIndex, Color, Color)Legt die Schattierung für die gesamte Tabelle auf die angegebenen Werte fest.
ToString(SaveFormat)Exportiert den Inhalt des Knotens in eine Zeichenfolge im angegebenen Format.
ToString(SaveOptions)Exportiert den Inhalt des Knotens unter Verwendung der angegebenen Speicheroptionen in eine Zeichenfolge.

Bemerkungen

Table ist ein Knoten auf Blockebene und kann ein Kind von Klassen sein, die abgeleitet sind vonStory oder InlineStory.

Table kann ein oder mehrere enthaltenRow Knoten.

Eine minimal gültige Tabelle muss mindestens eineRow.

Beispiele

Zeigt, wie eine Tabelle erstellt wird.

Document doc = new Document();
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Tabellen enthalten Zeilen, die Zellen enthalten, die Absätze enthalten können
// mit typischen Elementen wie Läufen, Formen und sogar anderen Tabellen.
// Der Aufruf der Methode "EnsureMinimum" für eine Tabelle stellt sicher, dass
// Die Tabelle hat mindestens eine Zeile, Zelle und einen Absatz.
Row firstRow = new Row(doc);
table.AppendChild(firstRow);

Cell firstCell = new Cell(doc);
firstRow.AppendChild(firstCell);

Paragraph paragraph = new Paragraph(doc);
firstCell.AppendChild(paragraph);

// Fügen Sie der ersten Zelle in der ersten Zeile der Tabelle Text hinzu.
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);

doc.Save(ArtifactsDir + "Table.CreateTable.docx");

Zeigt, wie alle Tabellen im Dokument durchlaufen und der Inhalt jeder Zelle gedruckt wird.

Document doc = new Document(MyDir + "Tables.docx");
TableCollection tables = doc.FirstSection.Body.Tables;

Assert.AreEqual(2, tables.ToArray().Length);

for (int i = 0; i < tables.Count; i++)
{
    Console.WriteLine($"Start of Table {i}");

    RowCollection rows = tables[i].Rows;

    // Wir können die Methode „ToArray“ auf eine Zeilensammlung anwenden, um sie in ein Array zu klonen.
    Assert.AreEqual(rows, rows.ToArray());
    Assert.AreNotSame(rows, rows.ToArray());

    for (int j = 0; j < rows.Count; j++)
    {
        Console.WriteLine($"\tStart of Row {j}");

        CellCollection cells = rows[j].Cells;

        // Wir können die Methode „ToArray“ auf eine Zellensammlung anwenden, um sie in ein Array zu klonen.
        Assert.AreEqual(cells, cells.ToArray());
        Assert.AreNotSame(cells, cells.ToArray());

        for (int k = 0; k < cells.Count; k++)
        {
            string cellText = cells[k].ToString(SaveFormat.Text).Trim();
            Console.WriteLine($"\t\tContents of Cell:{k} = \"{cellText}\"");
        }

        Console.WriteLine($"\tEnd of Row {j}");
    }

    Console.WriteLine($"End of Table {i}\n");
}

Zeigt, wie eine formatierte 2x2-Tabelle erstellt wird.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.InsertCell();
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.Write("Row 1, cell 1.");
builder.InsertCell();
builder.Write("Row 1, cell 2.");
builder.EndRow();

// Beim Erstellen der Tabelle wendet der Dokumentgenerator seine aktuellen RowFormat/CellFormat-Eigenschaftswerte an
// zur aktuellen Zeile/Zelle, in der sich der Cursor befindet, und zu allen neuen Zeilen/Zellen, sobald diese erstellt werden.
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[0].CellFormat.VerticalAlignment);
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[1].CellFormat.VerticalAlignment);

builder.InsertCell();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 2, cell 1.");
builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 2, cell 2.");
builder.EndRow();
builder.EndTable();

// Zuvor hinzugefügte Zeilen und Zellen werden durch Änderungen an der Formatierung des Builders nicht rückwirkend beeinflusst.
Assert.AreEqual(0, table.Rows[0].RowFormat.Height);
Assert.AreEqual(HeightRule.Auto, table.Rows[0].RowFormat.HeightRule);
Assert.AreEqual(100, table.Rows[1].RowFormat.Height);
Assert.AreEqual(HeightRule.Exactly, table.Rows[1].RowFormat.HeightRule);
Assert.AreEqual(TextOrientation.Upward, table.Rows[1].Cells[0].CellFormat.Orientation);
Assert.AreEqual(TextOrientation.Downward, table.Rows[1].Cells[1].CellFormat.Orientation);

doc.Save(ArtifactsDir + "DocumentBuilder.BuildTable.docx");

Zeigt, wie eine verschachtelte Tabelle ohne Verwendung eines Dokumentgenerators erstellt wird.

public void CreateNestedTable()
{
    Document doc = new Document();

    // Erstellen Sie die äußere Tabelle mit drei Zeilen und vier Spalten und fügen Sie sie dann dem Dokument hinzu.
    Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
    doc.FirstSection.Body.AppendChild(outerTable);

    // Erstellen Sie eine weitere Tabelle mit zwei Zeilen und zwei Spalten und fügen Sie sie dann in die erste Zelle der ersten Tabelle ein.
    Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
    outerTable.FirstRow.FirstCell.AppendChild(innerTable);

    doc.Save(ArtifactsDir + "Table.CreateNestedTable.docx");
}

/// <summary>
/// Erstellt eine neue Tabelle im Dokument mit den angegebenen Abmessungen und Text in jeder Zelle.
/// </summary>
private static Table CreateTable(Document doc, int rowCount, int cellCount, string cellText)
{
    Table table = new Table(doc);

    for (int rowId = 1; rowId <= rowCount; rowId++)
    {
        Row row = new Row(doc);
        table.AppendChild(row);

        for (int cellId = 1; cellId <= cellCount; cellId++)
        {
            Cell cell = new Cell(doc);
            cell.AppendChild(new Paragraph(doc));
            cell.FirstParagraph.AppendChild(new Run(doc, cellText));

            row.AppendChild(cell);
        }
    }

    // Mit den Eigenschaften „Titel“ und „Beschreibung“ können Sie Ihrer Tabelle jeweils einen Titel und eine Beschreibung hinzufügen.
    // Die Tabelle muss mindestens eine Zeile haben, bevor wir diese Eigenschaften verwenden können.
    // Diese Eigenschaften sind für ISO/IEC 29500-konforme .docx-Dokumente von Bedeutung (siehe Klasse OoxmlCompliance).
    // Wenn wir das Dokument in Formaten vor ISO/IEC 29500 speichern, ignoriert Microsoft Word diese Eigenschaften.
    table.Title = "Aspose table title";
    table.Description = "Aspose table description";

    return table;
}

Siehe auch