Formatierung anwenden
Jedes Element einer Tabelle kann mit unterschiedlichen Formatierungen versehen werden. Beispielsweise wird die Tabellenformatierung auf die gesamte Tabelle angewendet, die Zeilenformatierung nur auf bestimmte Zeilen und die Zellenformatierung nur auf bestimmte Zellen.
Aspose.Words bietet eine umfangreiche API-Funktion zum Abrufen und Anwenden von Formatierungen auf eine Tabelle. Sie können die Table-, RowFormat- und CellFormat-Knoten verwenden, um die Formatierung festzulegen.
In diesem Artikel sprechen wir darüber, wie man Formatierungen auf verschiedene Tabellenknoten anwendet und welche Tabellenformatierungseinstellungen Aspose.Words unterstützt.
Wenden Sie die Formatierung auf verschiedene Knoten an
In diesem Abschnitt betrachten wir die Anwendung der Formatierung auf verschiedene Tabellenknoten.
Formatierung auf Tabellenebene
Um eine Formatierung auf eine Tabelle anzuwenden, können Sie die auf dem entsprechenden Table-Knoten verfügbaren Eigenschaften mithilfe der Table-, PreferredWidth- und TableCollection-Klassen verwenden.
Die folgenden Bilder zeigen eine Darstellung der Table-Formatierungsfunktionen in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie man einen Umrissrahmen auf eine Tabelle anwendet:
Das folgende Codebeispiel zeigt, wie man eine Tabelle mit aktivierten Rändern (Raster) erstellt:
Formatierung auf Zeilenebene
Die Zeilenebene-Formatierung kann mithilfe der Klassen Row, RowFormat und RowCollection gesteuert werden.
Die folgenden Bilder zeigen eine Darstellung der Row-Formatierungsfunktionen in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie Sie die Tabellenzeilenformatierung ändern:
Formatierung auf Zellenebene
Die Formatierung auf Zellenebene wird durch die Klassen Cell, CellFormat und CellCollection gesteuert.
Beachten Sie, dass ein Cell nur ein untergeordneter Knoten eines Row sein kann. Gleichzeitig muss im Cell mindestens ein Paragraph vorhanden sein, damit Formatierungen darauf angewendet werden können.
Zusätzlich zum Paragraph können Sie auch ein Table in ein Cell einfügen.
Die folgenden Bilder zeigen eine Darstellung der Cell-Formatierungsfunktionen in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie Sie die Formatierung einer Tabellenzelle ändern:
Das folgende Codebeispiel zeigt, wie Sie den Abstand (in Punkt) festlegen, der links/oben/rechts/unten zum Inhalt der Zelle hinzugefügt werden soll:
Geben Sie Zeilenhöhen an
Der einfachste Weg, die Zeilenhöhe festzulegen, ist die Verwendung von DocumentBuilder. Mithilfe der entsprechenden RowFormat-Eigenschaften können Sie die Standardhöheneinstellung festlegen oder für jede Zeile in der Tabelle eine andere Höhe anwenden.
In Aspose.Words wird die Tabellenzeilenhöhe gesteuert durch:
- die Eigenschaft Zeilenhöhe – Height
- die Eigenschaft der Höhenregel für die angegebene Zeile – HeightRule
Gleichzeitig kann für jede Reihe eine andere Höhe eingestellt werden – so können Sie die Tischeinstellungen weitestgehend steuern.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle erstellen, die eine einzelne Zelle enthält, und Zeilenformatierung anwenden:
Angeben von Tabellen- und Zellenbreiten
Eine Tabelle in einem Microsoft Word-Dokument bietet verschiedene Möglichkeiten, die Größe der Tabelle und einzelner Zellen zu ändern. Diese Eigenschaften ermöglichen eine erhebliche Kontrolle über das Erscheinungsbild und das Verhalten der Tabelle, sodass Aspose.Words das Verhalten von Tabellen wie in Microsoft Word unterstützt.
Es ist wichtig zu wissen, dass Tabellenelemente verschiedene Eigenschaften aufweisen, die sich darauf auswirken können, wie die Breite der gesamten Tabelle sowie einzelner Zellen berechnet wird:
- Bevorzugte Breite auf dem Tisch
- Bevorzugte Breite für einzelne Zellen
- Autofit auf dem Tisch zulassen
In diesem Artikel wird detailliert beschrieben, wie die verschiedenen Eigenschaften zur Tabellenbreitenberechnung funktionieren und wie Sie die vollständige Kontrolle über die Tabellenbreitenberechnung erhalten. Das ist Besonders nützlich ist dies in solchen Fällen, in denen das Tabellenlayout nicht wie erwartet aussieht.
In den meisten Fällen wird die bevorzugte Zelle anstelle der Tabellenbreite empfohlen. Die bevorzugte Zellenbreite entspricht eher der DOCX-Formatspezifikation sowie dem Aspose.Words-Modell.
Die Zellenbreite ist eigentlich ein berechneter Wert für das DOCX-Format. Die tatsächliche Zellenbreite kann von vielen Dingen abhängen. Beispielsweise kann sich eine Änderung der Seitenränder oder der bevorzugten Tabellenbreite auf die tatsächliche Zellenbreite auswirken.
Die bevorzugte Zellenbreite ist eine Zelleneigenschaft, die im Dokument gespeichert ist. Es hängt von nichts ab und ändert sich nicht, wenn Sie die Tabelle oder andere Eigenschaften der Zelle ändern.
So verwenden Sie die bevorzugte Breite
Die gewünschte Breite einer Tabelle oder einzelner Zellen wird durch die bevorzugte Breiteneigenschaft definiert, die die Größe angibt, die ein Element anpassen soll. Das heißt, die bevorzugte Breite kann für die gesamte Tabelle oder für einzelne Zellen angegeben werden. In manchen Situationen ist es möglicherweise nicht möglich, diese Breite genau anzupassen, in den meisten Fällen liegt die tatsächliche Breite jedoch nahe an diesem Wert.
Der geeignete bevorzugte Breitentyp und -wert wird mithilfe der Methoden der PreferredWidth-Klasse festgelegt:
– die Auto-Methode zur Angabe von “Auto” oder “Keine bevorzugte Breite” – die FromPercent-Methode zur Angabe einer prozentualen Breite
- die FromPoints-Methode zur Angabe der Breite in Punkten
Die folgenden Bilder zeigen eine Darstellung der bevorzugten Breiteneinstellungsfunktionen in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Ein Beispiel dafür, wie diese Optionen auf eine echte Tabelle in einem Dokument angewendet werden, ist im Bild unten zu sehen.
Geben Sie die bevorzugte Tabellen- oder Zellenbreite an
In Aspose.Words werden Tabellen- und Zellenbreiten mithilfe der Table.PreferredWidth-Eigenschaft und der CellFormat.PreferredWidth-Eigenschaft festgelegt. Die Optionen sind in der PreferredWidthType-Enumeration verfügbar:
- Auto, was bedeutet, dass keine bevorzugte Breite festgelegt ist
- Percent, das das Element relativ zum verfügbaren Platz im Fenster oder der Containergröße anpasst und den Wert neu berechnet, wenn sich die verfügbare Breite ändert
- Points, was einem Element der angegebenen Breite in Punkten entspricht
Durch die Verwendung der Table.PreferredWidth-Eigenschaft wird die bevorzugte Breite relativ zum Container angepasst: Seite, Textspalte oder äußere Tabellenzelle, wenn es sich um eine verschachtelte Tabelle handelt.
Das folgende Codebeispiel zeigt, wie Sie die Tabelle so einstellen, dass sie automatisch an 50 % der Seitenbreite angepasst wird:
Wenn Sie die CellFormat.PreferredWidth-Eigenschaft für eine bestimmte Zelle verwenden, wird deren bevorzugte Breite angepasst.
Das folgende Codebeispiel zeigt, wie Sie die verschiedenen bevorzugten Breiteneinstellungen festlegen:
Ermitteln des bevorzugten Breitentyps und -werts
Sie können die Type- und Value-Eigenschaften verwenden, um die bevorzugten Breitendetails der gewünschten Tabelle oder Zelle zu ermitteln.
Das folgende Codebeispiel zeigt, wie der bevorzugte Breitentyp einer Tabellenzelle abgerufen wird:
So stellen Sie Autofit ein
Die AllowAutoFit-Eigenschaft ermöglicht das Vergrößern und Verkleinern von Zellen in einer Tabelle gemäß einem ausgewählten Kriterium. Sie können beispielsweise die Automatisch an Fenster anpassen-Option verwenden, um die Tabelle an die Breite der Seite anzupassen, und die Automatisch an den Inhalt anpassen-Option, um zuzulassen, dass jede Zelle entsprechend ihrem Inhalt vergrößert oder verkleinert wird.
Standardmäßig fügt Aspose.Words mithilfe von Automatisch an Fenster anpassen eine neue Tabelle ein. Die Größe der Tabelle wird entsprechend der verfügbaren Seitenbreite angepasst. Um die Größe einer Tabelle zu ändern, können Sie die AutoFit-Methode aufrufen. Diese Methode akzeptiert eine AutoFitBehavior-Enumeration, die angibt, welcher Typ der automatischen Anpassung auf die Tabelle angewendet wird.
Es ist wichtig zu wissen, dass es sich bei der Autofit-Methode tatsächlich um eine Verknüpfung handelt, die gleichzeitig verschiedene Eigenschaften auf die Tabelle anwendet. Dies sind Eigenschaften, die der Tabelle tatsächlich das beobachtete Verhalten verleihen. Wir werden diese Eigenschaften für jede Autofit-Option besprechen.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle so einrichten, dass jede Zelle entsprechend ihrem Inhalt verkleinert oder vergrößert wird:
Tabelle automatisch an Fenster anpassen
Wenn die automatische Anpassung an ein Fenster auf eine Tabelle angewendet wird, werden die folgenden Vorgänge tatsächlich im Hintergrund ausgeführt:
- Die Table.AllowAutoFit-Eigenschaft ist aktiviert, um die Spaltengröße automatisch an den verfügbaren Inhalt anzupassen, wobei ein Table.PreferredWidth-Wert von 100 % verwendet wird
- CellFormat.PreferredWidth wird aus allen Tabellenzellen entfernt
Beachten Sie, dass sich dies geringfügig vom Microsoft Word-Verhalten unterscheidet, bei dem die bevorzugte Breite jeder Zelle auf geeignete Werte basierend auf ihrer aktuellen Größe und ihrem aktuellen Inhalt festgelegt wird. Aspose.Words aktualisiert die bevorzugte Breite nicht, daher werden sie stattdessen einfach gelöscht.
- Die Spaltenbreiten werden für den aktuellen Tabelleninhalt neu berechnet – das Endergebnis ist eine Tabelle, die die gesamte verfügbare Breite einnimmt
- Die Breite der Spalten in der Tabelle ändert sich automatisch, wenn der Benutzer den Text bearbeitet
Das folgende Codebeispiel zeigt, wie eine Tabelle automatisch an die Seitenbreite angepasst wird:
Tabelle automatisch an Inhalt anpassen
Wenn der Inhalt der Tabelle automatisch angepasst wird, werden im Hintergrund tatsächlich die folgenden Schritte ausgeführt:
-
Die Table.AllowAutoFit-Eigenschaft ist aktiviert, um die Größe jeder Zelle entsprechend ihrem Inhalt automatisch anzupassen
-
Die bevorzugte Tabellenbreite wird aus Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird für jede Tabellenzelle entfernt
Beachten Sie, dass diese Option zur automatischen Anpassung die bevorzugte Breite aus den Zellen entfernt, genau wie in Microsoft Word. Wenn Sie die Spaltengrößen beibehalten und die Spalten vergrößern oder verkleinern möchten, um sie an den Inhalt anzupassen, sollten Sie die Table.AllowAutoFit-Eigenschaft allein auf True setzen, anstatt die Autofit-Verknüpfung.zu verwenden -
Die Spaltenbreiten werden für den aktuellen Tabelleninhalt neu berechnet – das Endergebnis ist eine Tabelle, in der die Spaltenbreiten und die Breite der gesamten Tabelle automatisch angepasst werden, um am besten zum Inhalt zu passen, während der Benutzer den Text bearbeitet
Das folgende Codebeispiel zeigt, wie eine Tabelle automatisch an ihren Inhalt angepasst wird:
Deaktivieren Sie die automatische Anpassung in der Tabelle und verwenden Sie feste Spaltenbreiten
Wenn für eine Tabelle die automatische Anpassung deaktiviert ist und stattdessen feste Spaltenbreiten verwendet werden, werden die folgenden Schritte ausgeführt:
- Die Table.AllowAutoFit-Eigenschaft ist deaktiviert, sodass Spalten nicht entsprechend ihrem Inhalt vergrößert oder verkleinert werden
- Die bevorzugte Breite der gesamten Tabelle wird aus Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird aus allen Tabellenzellen entfernt
- Das Endergebnis ist eine Tabelle, deren Spaltenbreiten durch die CellFormat.Width-Eigenschaft bestimmt werden und deren Spaltengröße nicht automatisch geändert wird, wenn der Benutzer Text eingibt oder wenn die Seitengröße geändert wird
Das folgende Codebeispiel zeigt, wie Sie die automatische Anpassung deaktivieren und die feste Breite für die angegebene Tabelle aktivieren:
Die Rangfolge bei der Berechnung der Zellenbreite
Aspose.Words ermöglicht es Benutzern, die Breite einer Tabelle oder Zelle über mehrere Objekte, einschließlich CellFormat, zu definieren – seine Width-Eigenschaft ist größtenteils aus früheren Versionen übrig geblieben, sie ist jedoch immer noch nützlich, um das Festlegen der Zellenbreite zu vereinfachen.
Es ist wichtig zu wissen, dass die CellFormat.Width-Eigenschaft unterschiedlich funktioniert, je nachdem, welche der anderen Breiteneigenschaften bereits in der Tabelle vorhanden sind.
Aspose.Words verwendet die folgende Reihenfolge zur Berechnung der Zellenbreiten:
Befehl | Eigentum | Beschreibung |
---|---|---|
1 | AllowAutoFit wird ermittelt | Wenn AutoFit aktiviert ist: - Die Tabelle kann über die bevorzugte Breite hinaus wachsen, um den Inhalt aufzunehmen – normalerweise schrumpft sie nicht unter die bevorzugte Breite – Jede Änderung am CellFormat.Width-Wert wird ignoriert und die Zelle passt stattdessen an ihren Inhalt |
2 | PreferredWidthType mit dem Wert Points oder Percent | CellFormat.Width wird ignoriert |
3 | PreferredWidthType mit dem Wert Auto | Der Wert aus CellFormat.Width wird kopiert und wird zur bevorzugten Breite der Zelle (in Punkt) |
Abstand zwischen Zellen zulassen
Sie können jeden zusätzlichen Abstand zwischen Tabellenzellen erhalten oder festlegen, ähnlich der Option “Zellenabstand” in Microsoft Word. Dies kann über die AllowCellSpacing-Eigenschaft erfolgen.
Ein Beispiel dafür, wie diese Optionen auf eine echte Tabelle in einem Dokument angewendet werden, ist im Bild unten zu sehen.
Das folgende Codebeispiel zeigt, wie der Abstand zwischen Zellen festgelegt wird:
Anwenden von Rändern und Schattierungen
Rahmen und Schattierungen können mit Table.SetBorder, Table.SetBorders und Table.SetShading entweder auf die gesamte Tabelle oder mit CellFormat.Borders und CellFormat.Shading nur auf bestimmte Zellen angewendet werden. Darüber hinaus können Zeilenränder mit RowFormat.Borders festgelegt werden, Schattierungen können auf diese Weise jedoch nicht angewendet werden.
Die Bilder unten zeigen die Rahmen- und Schatteneinstellungen in Microsoft Word und ihre entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie eine Tabelle und eine Zelle mit unterschiedlichen Rändern und Schattierungen formatiert werden: