Formatierung 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.

formattin-features-table-level-aspose-words-cpp

formatting-table-options-aspose-words-cpp

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

Zeilenebene

Die folgenden Bilder zeigen eine Darstellung der Row Formatierungsmerkmale in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.

formatting-row-level-aspose-words-cpp

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.

Die folgenden Bilder zeigen eine Darstellung der Cell Formatierungsmerkmale in Microsoft Word und ihrer entsprechenden Eigenschaften in Aspose.Words.

formatting-cell-level-aspose-words-cpp

auto-formatting-cell-level-aspose-words-cpp

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.

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:

  • die Auto -Methode zum Angeben von auto oder “keine bevorzugte Breite”
  • 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.

formatting-table-properties-aspose-words-cpp

Ein Beispiel dafür, wie diese Optionen auf eine reale Tabelle in einem Dokument angewendet werden, ist in der Abbildung unten zu sehen.

todo:image_alt_text

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:

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:

  1. 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%
  2. CellFormat.PreferredWidth wird aus allen Tabellenzellen entfernt
  3. Spaltenbreiten werden für den aktuellen Tabelleninhalt neu berechnet – das Endergebnis ist eine Tabelle, die die gesamte verfügbare Breite einnimmt
  4. 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:

AutoFit Tabelle zum Inhalt

Wenn die Tabelle automatisch an den Inhalt angepasst wird, werden die folgenden Schritte tatsächlich hinter den Kulissen ausgeführt:

  1. Die Eigenschaft Table.AllowAutoFit ist aktiviert, um die Größe jeder Zelle automatisch entsprechend ihrem Inhalt zu ändern

  2. Die bevorzugte Tabellenbreite wird von Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird für jede Tabellenzelle entfernt

  3. 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:

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:

  1. Die Eigenschaft Table.AllowAutoFit ist deaktiviert, sodass Spalten nicht auf ihren Inhalt vergrößert oder verkleinert werden
  2. Die bevorzugte Breite der gesamten Tabelle wird von Table.PreferredWidth entfernt, CellFormat.PreferredWidth wird von allen Tabellenzellen entfernt
  3. 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:

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.

formatting-spacing-between-cells-aspose-words-cpp

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.

formatting-border-line-aspose-words-cpp

formatting-cell-color-aspose-words-cpp

Das folgende Codebeispiel zeigt, wie Sie eine Tabelle und eine Zelle mit unterschiedlichen Rahmen und Schattierungen formatieren: