Arbeiten mit Spalten und Zeilen
Erfahren Sie, wie Sie Spalten und Zeilen bearbeiten, um mehr Kontrolle über die Funktionsweise von Tabellen zu erhalten.
Suchen Sie den Tabellenelementindex
Spalten, Zeilen und Zellen werden verwaltet, indem auf den ausgewählten Dokumentknoten über seinen Index zugegriffen wird. Das Auffinden des Index eines Knotens umfasst das Sammeln aller untergeordneten Knoten des Elementtyps vom übergeordneten Knoten und das anschließende Verwenden der Methode IndexOf, um den Index des gewünschten Knotens in der Auflistung zu ermitteln.
Suchen Sie den Index einer Tabelle in einem Dokument
Manchmal müssen Sie möglicherweise Änderungen an einer bestimmten Tabelle in einem Dokument vornehmen. Dazu können Sie anhand ihres Index auf eine Tabelle verweisen.
Das folgende Codebeispiel zeigt, wie der Index einer Tabelle in einem Dokument abgerufen wird:
Finde den Index einer Zeile in einer Tabelle
Ebenso müssen Sie möglicherweise Änderungen an einer bestimmten Zeile in einer ausgewählten Tabelle vornehmen. Dazu können Sie auch über ihren Index auf eine Zeile verweisen.
Das folgende Codebeispiel zeigt, wie der Index einer Zeile in einer Tabelle abgerufen wird:
Finde den Index einer Zelle in einer Zeile
Schließlich müssen Sie möglicherweise Änderungen an einer bestimmten Zelle vornehmen, und Sie können dies auch nach Zellindex tun.
Das folgende Codebeispiel zeigt, wie der Index einer Zelle in einer Zeile abgerufen wird:
Mit Spalten arbeiten
Im Aspose.Words -Dokumentobjektmodell (DOM) besteht der Table -Knoten aus Row Knoten und dann Cell Knoten. Daher gibt es im Document
-Objektmodell von Aspose.Words wie in Word-Dokumenten kein Konzept einer Spalte.
Entwurfsbedingt sind die Tabellenzeilen in Microsoft Word und Aspose.Words völlig unabhängig, und die grundlegenden Eigenschaften und Operationen sind nur in den Zeilen und Zellen der Tabelle enthalten. Dies gibt Tabellen die Möglichkeit, einige interessante Attribute zu haben:
- Jede Tabellenzeile kann eine völlig andere Anzahl von Zellen haben
- Vertikal können die Zellen jeder Zeile unterschiedliche Breiten haben
- Es ist möglich, Tabellen mit unterschiedlichen Zeilenformaten und Zellenzahlen zu verknüpfen
Alle Operationen, die an Spalten ausgeführt werden, sind eigentlich “Verknüpfungen”, die den Vorgang ausführen, indem Zeilenzellen kollektiv so geändert werden, dass es so aussieht, als würden sie auf Spalten angewendet. Das heißt, Sie können Operationen an Spalten ausführen, indem Sie einfach über denselben Tabellenzeilenzellenindex iterieren.
Das folgende Codebeispiel vereinfacht solche Vorgänge, indem es eine Fassadenklasse beweist, die die Zellen sammelt, aus denen eine “Spalte” einer Tabelle besteht:
Das folgende Codebeispiel zeigt, wie Sie eine leere Spalte in eine Tabelle einfügen:
Das folgende Codebeispiel zeigt, wie Sie eine Spalte aus einer Tabelle in einem Dokument entfernen:
Zeilen als Kopfzeilen angeben
Sie können die erste Zeile in der Tabelle als Kopfzeile nur auf der ersten Seite oder auf jeder Seite wiederholen, wenn die Tabelle in mehrere aufgeteilt ist. In Aspose.Words können Sie die Kopfzeile auf jeder Seite mit der Eigenschaft HeadingFormat wiederholen.
Sie können auch mehrere Kopfzeilen markieren, wenn sich solche Zeilen nacheinander am Tabellenanfang befinden. Dazu müssen Sie die HeadingFormat -Eigenschaften auf diese Zeilen anwenden.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle erstellen, die Kopfzeilen enthält, die sich auf nachfolgenden Seiten wiederholen:
Verhindern, dass Tabellen und Zeilen über Seiten verteilt werden
Es gibt Zeiten, in denen der Inhalt einer Tabelle nicht auf mehrere Seiten aufgeteilt werden sollte. Wenn sich beispielsweise ein Titel über einer Tabelle befindet, sollten Titel und Tabelle immer auf derselben Seite zusammengehalten werden, um das korrekte Erscheinungsbild zu erhalten.
Es gibt zwei separate Techniken, die nützlich sind, um diese Funktionalität zu erreichen:
Allow row break across pages
, das auf Tabellenzeilen angewendet wirdKeep with next
, das auf Absätze in Tabellenzellen angewendet wird
Standardmäßig sind die obigen Eigenschaften deaktiviert.
Verhindern, dass eine Zeile seitenübergreifend wird
Dies beinhaltet die Einschränkung, dass Inhalte in den Zellen einer Zeile nicht auf eine Seite aufgeteilt werden. In Microsoft Word finden Sie dies unter Tabelleneigenschaften als Option “Zeilenumbruch über Seiten zulassen”. In Aspose.Words findet sich dies unter dem RowFormat -Objekt von a Row als Eigenschaft RowFormat.AllowBreakAcrossPages.
Das folgende Codebeispiel zeigt, wie Sie Zeilenumbrüche über Seiten hinweg für jede Zeile in einer Tabelle deaktivieren:
Verhindern, dass eine Tabelle seitenübergreifend wird
Um zu verhindern, dass sich die Tabelle auf mehrere Seiten aufteilt, müssen wir angeben, dass der in der Tabelle enthaltene Inhalt zusammenbleiben soll.
Dazu verwendet Aspose.Words eine Methode, mit der Benutzer eine Tabelle auswählen und den Parameter KeepWithNext für jeden Absatz in den Tabellenzellen auf true setzen können. Die Ausnahme ist der letzte Absatz in der Tabelle, der auf false gesetzt werden sollte.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle so einrichten, dass sie auf derselben Seite zusammenbleibt: