Tabellenformatierung anwenden
Jedes Element einer Tabelle kann mit unterschiedlichen Formatierungen angewendet 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 Knoten Table, RowFormat und CellFormat verwenden, um die Formatierung festzulegen.
In diesem Artikel werden wir darüber sprechen, wie Formatierungen auf verschiedene Tabellenknoten angewendet werden und welche Tabellenformatierungseinstellungen Aspose.Words unterstützt.
Formatierung auf verschiedene Knoten anwenden
In diesem Abschnitt werden wir uns mit der Anwendung von Formatierungen auf verschiedene Tabellenknoten befassen.
Formatierung auf Tabellenebene
Um Formatierungen auf eine Tabelle anzuwenden, können Sie die Eigenschaften verwenden, die auf dem entsprechenden Table-Knoten mit den Klassen Table, PreferredWidth und TableCollection verfügbar sind.
Die folgenden Bilder zeigen eine Darstellung der Table Formatierungsmerkmale in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie Sie einen Gliederungsrahmen auf eine Tabelle anwenden:
Das folgende Codebeispiel zeigt, wie eine Tabelle mit aktivierten Rahmen (Raster) erstellt wird:
Formatierung auf Zeilenebene
Die Formatierung auf Zeilenebene** kann mithilfe der Klassen Row, RowFormat und RowCollection gesteuert werden.
Die folgenden Bilder zeigen eine Darstellung der Row Formatierungsmerkmale in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie Sie die Tabellenzeilenformatierung ändern:
Formatierung auf Zellebene
Die Formatierung auf Zellenebene wird von den Klassen Cell, CellFormat und CellCollection gesteuert.
Beachten Sie, dass a Cell nur ein untergeordneter Knoten von a Row sein kann. Gleichzeitig muss in der Cell mindestens eine Paragraph enthalten sein, damit die Formatierung darauf angewendet werden kann.
Zusätzlich zu Paragraph können Sie auch eine Table in eine Cell einfügen.
Die folgenden Bilder zeigen eine Darstellung der Cell Formatierungsmerkmale 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 Platz (in Punkten) festlegen, der links / oben / rechts / unten am Inhalt der Zelle hinzugefügt werden soll:
Zeilenhöhen angeben
Der einfachste Weg, die Zeilenhöhe festzulegen, ist die Verwendung von DocumentBuilder. Mit den 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 Höhenregeleigenschaft für die angegebene Zeile - HeightRule
Gleichzeitig kann für jede Zeile eine andere Höhe eingestellt werden – so können Sie die Tabelleneinstellungen weitgehend steuern.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle erstellen, die eine einzelne Zelle enthält, und die Zeilenformatierung anwenden:
Tabellen- und Zellenbreiten angeben
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 beträchtliche Kontrolle über das Erscheinungsbild und 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 auf die Berechnung der Breite der Gesamttabelle sowie einzelner Zellen auswirken können:
- Bevorzugte Breite auf dem Tisch
- Bevorzugte Breite auf einzelnen Zellen
- Autofit auf dem Tisch zulassen
In diesem Artikel wird beschrieben, wie die verschiedenen Eigenschaften für die Tabellenbreitenberechnung funktionieren und wie Sie die vollständige Kontrolle über die Tabellenbreitenberechnung erhalten. Das ist besonders nützlich in solchen Fällen, in denen das Tabellenlayout nicht wie erwartet angezeigt wird.
In den meisten Fällen wird die bevorzugte Zelle als die Tabellenbreite empfohlen. Die bevorzugte Zellenbreite entspricht eher der DOCX -Formatspezifikation sowie dem Aspose.Words -Modell.
Die Zellenbreite ist tatsächlich ein berechneter Wert für das Format DOCX. Die tatsächliche Zellenbreite kann von vielen Dingen abhängen. Beispielsweise kann das Ändern der Seitenränder oder der bevorzugten Tabellenbreite die tatsächliche Zellenbreite beeinflussen.
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 Eigenschaft bevorzugte Breite definiert, bei der es sich um die Größe handelt, die ein Element anstrebt. Das heißt, die bevorzugte Breite kann für die gesamte Tabelle oder für einzelne Zellen angegeben werden. In einigen Situationen ist es möglicherweise nicht möglich, diese Breite genau anzupassen, aber die tatsächliche Breite wird in den meisten Fällen nahe an diesem Wert liegen.
Der entsprechende bevorzugte Breiten-Typ und -Wert werden mit den Methoden der PreferredWidth-Klasse festgelegt:
- das Feld Auto, um auto oder “keine bevorzugte Breite” anzugeben
- die FromPercent -Methode zum Angeben einer prozentualen Breite
- die FromPoints -Methode zum Angeben der Breite in Punkten
Die folgenden Bilder zeigen eine Darstellung der preferred width setting features in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.
Ein Beispiel dafür, wie diese Optionen auf eine reale Tabelle in einem Dokument angewendet werden, ist in der Abbildung unten zu sehen.
Geben Sie die bevorzugte Tabellen- oder Zellenbreite an
In Aspose.Words werden Tabellen- und Zellenbreiten mit der Eigenschaft Table.PreferredWidth und der Eigenschaft CellFormat.PreferredWidth festgelegt, wobei Optionen in der Aufzählung PreferredWidthType verfügbar sind:
- Auto, was keiner bevorzugten Breite entspricht
- Percent passt das Element relativ zum verfügbaren Platz in der Fenster- oder Containergröße an und berechnet den Wert neu, wenn sich die verfügbare Breite ändert
- Points, was einem Element der angegebenen Breite in Punkten entspricht
Wenn Sie die Eigenschaft Table.PreferredWidth verwenden, wird die bevorzugte Breite relativ zu ihrem 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 Eigenschaft CellFormat.PreferredWidth für eine bestimmte Zelle verwenden, wird deren bevorzugte Breite angepasst.
Das folgende Codebeispiel zeigt, wie Sie die verschiedenen bevorzugten Breiteneinstellungen festlegen:
Finden Sie den bevorzugten Breiten-Typ und -Wert
Sie können die Eigenschaften Type und Value verwenden, um die bevorzugten Breitenangaben der gewünschten Tabelle oder Zelle zu finden.
Das folgende Codebeispiel zeigt, wie Sie den bevorzugten Breiten-Typ einer Tabellenzelle abrufen:
Wie man Autofit einstellt
Mit der Eigenschaft AllowAutoFit können Zellen in einer Tabelle nach einem ausgewählten Kriterium vergrößert und verkleinert werden. Sie können beispielsweise die Option AutoFit to Window verwenden, um die Tabelle an die Breite der Seite anzupassen, und die Option AutoFit to Content, um zuzulassen, dass jede Zelle entsprechend ihrem Inhalt vergrößert oder verkleinert wird.
Standardmäßig fügt Aspose.Words eine neue Tabelle mit AutoFit to Window ein. Die Tabelle wird entsprechend der verfügbaren Seitenbreite dimensioniert. Um die Größe einer Tabelle zu ändern, können Sie die Methode AutoFit aufrufen. Diese Methode akzeptiert eine AutoFitBehavior-Aufzählung, die angibt, welcher Typ von Autofit auf die Tabelle angewendet wird.
Es ist wichtig zu wissen, dass die Autofit-Methode tatsächlich eine Verknüpfung ist, 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 einstellen, dass jede Zelle entsprechend ihrem Inhalt verkleinert oder vergrößert wird:
Wir werden die folgende Tabelle verwenden, um die verschiedenen Einstellungen für die automatische Anpassung als Demonstration anzuwenden.
AutoFit Tabelle zum Fenster
Wenn die automatische Anpassung an ein Fenster auf eine Tabelle angewendet wird, werden die folgenden Vorgänge tatsächlich hinter den Kulissen ausgeführt:
- Die Eigenschaft Table.AllowAutoFit 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 Verhalten Microsoft Word unterscheidet, bei dem die bevorzugte Breite jeder Zelle basierend auf ihrer aktuellen Größe und ihrem aktuellen Inhalt auf geeignete Werte festgelegt wird. Aspose.Words aktualisiert die bevorzugte Breite nicht, sodass sie stattdessen nur gelöscht werden.
- 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:
Ein Beispiel dafür, wie diese Optionen auf die obige Tabelle angewendet werden, ist in der Abbildung unten zu sehen.
AutoFit Tabelle zum Inhalt
Wenn die Tabelle automatisch an den Inhalt angepasst wird, werden die folgenden Schritte tatsächlich hinter den Kulissen ausgeführt:
-
Die Eigenschaft Table.AllowAutoFit ist aktiviert, um die Größe jeder Zelle automatisch entsprechend ihrem Inhalt zu ändern
-
Die bevorzugte Tabellenbreite wird von Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird für jede Tabellenzelle entfernt
Beachten Sie, dass diese Option zum automatischen Anpassen die bevorzugte Breite aus Zellen entfernt, genau wie in Microsoft Word. Wenn Sie die Spaltengrößen beibehalten und die Spalten entsprechend dem Inhalt vergrößern oder verkleinern möchten, sollten Sie die Eigenschaft Table.AllowAutoFit allein auf True setzen, anstatt die Verknüpfung zum automatischen Anpassen zu verwenden. -
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 an den Inhalt angepasst werden, wenn der Benutzer den Text bearbeitet
Das folgende Codebeispiel zeigt, wie eine Tabelle automatisch an ihren Inhalt angepasst wird:
Ein Beispiel dafür, wie diese Optionen auf die obige Tabelle angewendet werden, ist in der Abbildung unten zu sehen.
Deaktivieren Sie AutoFit 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 Eigenschaft Table.AllowAutoFit ist deaktiviert, sodass Spalten nicht auf ihren Inhalt vergrößert oder verkleinert werden
- Die bevorzugte Breite der gesamten Tabelle wird von Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird von allen Tabellenzellen entfernt
- Das Endergebnis ist eine Tabelle, deren Spaltenbreiten durch die Eigenschaft CellFormat.Width 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:
Ein Beispiel dafür, wie diese Optionen auf die obige Tabelle angewendet werden, ist in der Abbildung unten zu sehen.
Rangfolge bei der Berechnung der Zellenbreite
Mit Aspose.Words können Benutzer die Breite einer Tabelle oder Zelle durch mehrere Objekte definieren, einschließlich CellFormat – die Eigenschaft Width ist größtenteils von früheren Versionen übrig geblieben, sie ist jedoch weiterhin nützlich, um das Festlegen der Zellenbreite zu vereinfachen.
Es ist wichtig zu wissen, dass die Eigenschaft CellFormat.Width unterschiedlich funktioniert, je nachdem, welche der anderen Breiteneigenschaften bereits in der Tabelle vorhanden sind.
Aspose.Words verwendet die folgende Reihenfolge für die Berechnung der Zellenbreiten:
Bestellen | Eigenschaft | Beschreibung |
---|---|---|
AllowAutoFit ist bestimmt | Wenn AutoFit aktiviert ist: - der Tisch darf über die bevorzugte Breite hinaus wachsen, um den Inhalt aufzunehmen - er schrumpft normalerweise nicht unter die bevorzugte Breite - jede Änderung des CellFormat.Width -Werts wird ignoriert und die Zelle wird stattdessen an ihren Inhalt angepasst |
|
PreferredWidthType mit einem Wert von Points oder Percent | CellFormat.Width wird ignoriert | |
PreferredWidthType mit einem Wert von Auto | Der Wert von CellFormat.Width wird kopiert und wird zur bevorzugten Breite der Zelle (in Punkten) |
Abstand zwischen Zellen zulassen
Sie können einen beliebigen zusätzlichen Abstand zwischen Tabellenzellen abrufen oder festlegen, ähnlich der Option “Zellenabstand” in Microsoft Word. Dies kann mit der Eigenschaft AllowCellSpacing erfolgen.
Ein Beispiel dafür, wie diese Optionen auf eine reale Tabelle in einem Dokument angewendet werden, ist in der Abbildung unten zu sehen.
Das folgende Codebeispiel zeigt, wie Sie den Abstand zwischen Zellen festlegen:
Anwenden von Rändern und Schattierungen
Rahmen und Schattierungen können entweder mit Table.SetBorder, Table.SetBorders und Table.SetShading auf die gesamte Tabelle oder mit CellFormat.Borders und CellFormat.Shading nur auf bestimmte Zellen angewendet werden. Zusätzlich können Zeilenränder mit RowFormat.Borders festgelegt werden, jedoch kann auf diese Weise keine Schattierung angewendet werden.
Die folgenden Bilder zeigen die Rand- und Schatteneinstellungen in Microsoft Word und die entsprechenden Eigenschaften in Aspose.Words.
Das folgende Codebeispiel zeigt, wie Sie eine Tabelle und eine Zelle mit unterschiedlichen Rahmen und Schattierungen formatieren: