Zastosuj formatowanie

Do każdego elementu tabeli można zastosować inne formatowanie. Na przykład formatowanie tabeli zostanie zastosowane do całej tabeli, formatowanie wierszy tylko do określonych wierszy, a formatowanie komórek tylko do wybranych komórek.

Aspose.Words zapewnia bogaty format API do pobierania i stosowania formatowania w tabeli. Do ustawienia formatowania można użyć węzłów Table, RowFormat i CellFormat.

W tym artykule porozmawiamy o tym, jak zastosować formatowanie do różnych węzłów tabeli i jakie ustawienia formatowania tabeli obsługuje Aspose.Words.

Zastosuj formatowanie do różnych węzłów

W tej sekcji przyjrzymy się stosowaniu formatowania do różnych węzłów tabeli.

Formatowanie na poziomie tabeli

Aby zastosować formatowanie do tabeli, możesz użyć właściwości dostępnych w odpowiednim węźle Table przy użyciu klas Table, PreferredWidth i TableCollection.

Poniższe rysunki przedstawiają funkcje formatowania Table w formacie Microsoft Word i odpowiadające im właściwości w formacie Aspose.Words.

formattin-features-table-level-aspose-words-python

formatting-table-options-aspose-words-python

Poniższy przykład kodu pokazuje, jak zastosować obramowanie konspektu do tabeli:

Poniższy przykład kodu pokazuje, jak zbudować tabelę z włączonymi wszystkimi obramowaniami (siatką):

Formatowanie na poziomie wiersza

Formatowaniem Poziom wiersza można sterować za pomocą klas Row, RowFormat i RowCollection.

Poniższe rysunki przedstawiają funkcje formatowania Row w formacie Microsoft Word i odpowiadające im właściwości w formacie Aspose.Words.

formatting-row-level-aspose-words-python

Poniższy przykład kodu pokazuje, jak zmodyfikować formatowanie wierszy tabeli:

Formatowanie na poziomie komórki

Formatowanie na poziomie komórki jest kontrolowane przez klasy Cell, CellFormat i CellCollection.

Poniższe rysunki przedstawiają funkcje formatowania Cell w formacie Microsoft Word i odpowiadające im właściwości w formacie Aspose.Words.

formatting-cell-level-aspose-words-python

auto-formatting-cell-level-aspose-words-python

Poniższy przykład kodu pokazuje, jak zmodyfikować formatowanie komórki tabeli:

Poniższy przykład kodu pokazuje, jak ustawić ilość miejsca (w punktach), które ma zostać dodane po lewej/górze/prawej/dolnej stronie zawartości komórki:

Określ wysokość wierszy

Najprostszym sposobem ustawienia wysokości wiersza jest użycie DocumentBuilder. Korzystając z odpowiednich właściwości RowFormat, możesz ustawić domyślne ustawienie wysokości lub zastosować inną wysokość dla każdego wiersza w tabeli.

W Aspose.Words wysokość wiersza tabeli jest kontrolowana przez:

  • właściwość wysokości wiersza – Height
  • właściwość reguły wysokości dla danego wiersza – HeightRule

Jednocześnie dla każdego rzędu można ustawić inną wysokość – pozwala to na szeroką kontrolę ustawień stołu.

Poniższy przykład kodu pokazuje, jak utworzyć tabelę zawierającą pojedynczą komórkę i zastosować formatowanie wierszy:

Określanie szerokości tabeli i komórek

Tabela w dokumencie Microsoft Word udostępnia kilka różnych sposobów zmiany rozmiaru tabeli i poszczególnych komórek. Właściwości te pozwalają na znaczną kontrolę nad wyglądem i zachowaniem tabeli, dzięki czemu Aspose.Words obsługuje zachowanie tabel, podobnie jak w Microsoft Word.

Ważne jest, aby wiedzieć, że elementy tabeli mają kilka różnych właściwości, które mogą wpływać na sposób obliczania szerokości całej tabeli, a także poszczególnych komórek:

  • Preferowana szerokość na stole
  • Preferowana szerokość poszczególnych komórek
  • Umożliwienie automatycznego dopasowania na stole

W tym artykule szczegółowo opisano, jak działają różne właściwości obliczania szerokości tabeli i jak uzyskać pełną kontrolę nad obliczaniem szerokości tabeli. To jest Jest to szczególnie przydatne w przypadkach, gdy układ tabeli nie wygląda zgodnie z oczekiwaniami.

Jak korzystać z preferowanej szerokości

Pożądaną szerokość tabeli lub poszczególnych komórek definiuje się poprzez preferowaną właściwość szerokości, czyli rozmiar, do jakiego stara się dopasować element. Oznacza to, że preferowaną szerokość można określić dla całej tabeli lub dla poszczególnych komórek. W niektórych sytuacjach dokładne dopasowanie tej szerokości może nie być możliwe, ale w większości przypadków rzeczywista szerokość będzie zbliżona do tej wartości.

Odpowiedni preferowany typ szerokości i wartość ustawia się za pomocą metod klasy PreferredWidth:

  • metoda Auto do określenia szerokości automatycznej lub “brak preferowanej szerokości”
  • metoda FromPercent służąca do określenia procentowej szerokości
  • metoda FromPoints określająca szerokość w punktach

Poniższe rysunki przedstawiają preferowane funkcje ustawiania szerokości w formacie Microsoft Word i odpowiadające im właściwości w formacie Aspose.Words.

formatting-table-properties-aspose-words-python

Przykład zastosowania tych opcji do rzeczywistej tabeli w dokumencie widać na poniższym obrazku.

tables-applying-options-python

Określ preferowaną szerokość tabeli lub komórki

W Aspose.Words szerokość tabeli i komórki jest ustawiana za pomocą właściwości Table.PreferredWidth i właściwości CellFormat.PreferredWidth, z opcjami dostępnymi w wyliczeniu PreferredWidthType:

  • Auto, co jest równoznaczne z brakiem zestawu preferowanej szerokości
  • Percent, który dopasowuje element względem dostępnej przestrzeni w oknie lub rozmiarze kontenera i przelicza wartość w przypadku zmiany dostępnej szerokości
  • Points, który odpowiada elementowi o określonej szerokości w punktach

Użycie właściwości Table.PreferredWidth spowoduje dostosowanie preferowanej szerokości względem kontenera: strony, kolumny tekstowej lub zewnętrznej komórki tabeli, jeśli jest to tabela zagnieżdżona.

Poniższy przykład kodu pokazuje, jak ustawić tabelę tak, aby automatycznie dopasowywała się do 50% szerokości strony:

Użycie właściwości CellFormat.PreferredWidth w danej komórce spowoduje dostosowanie jej preferowanej szerokości.

Poniższy przykład kodu pokazuje, jak ustawić różne preferowane ustawienia szerokości:

Znajdowanie preferowanego typu i wartości szerokości

Możesz użyć właściwości Type i Value, aby znaleźć preferowane szczegóły szerokości żądanej tabeli lub komórki.

Poniższy przykład kodu pokazuje, jak pobrać preferowany typ szerokości komórki tabeli:

Jak ustawić automatyczne dopasowanie

Właściwość AllowAutoFit umożliwia powiększanie i zmniejszanie komórek w tabeli zgodnie z wybranym kryterium. Na przykład możesz użyć opcji Automatyczne dopasowanie do okna, aby dopasować tabelę do szerokości strony, oraz opcji Automatyczne dopasowanie do treści, aby umożliwić powiększanie lub zmniejszanie każdej komórki w zależności od jej zawartości.

Domyślnie Aspose.Words wstawia nową tabelę za pomocą Automatyczne dopasowanie do okna. Rozmiar tabeli zostanie dostosowany do dostępnej szerokości strony. Aby zmienić rozmiar tabeli, możesz wywołać metodę AutoFit. Ta metoda akceptuje wyliczenie AutoFitBehavior, które określa, jaki typ automatycznego dopasowania jest stosowany w tabeli.

Warto wiedzieć, że metoda automatycznego dopasowania jest w rzeczywistości skrótem, który jednocześnie stosuje do tabeli różne właściwości. Są to właściwości, które faktycznie nadają tabeli obserwowane zachowanie. Omówimy te właściwości dla każdej opcji automatycznego dopasowania.

Poniższy przykład kodu pokazuje, jak ustawić tabelę tak, aby zmniejszała lub powiększała każdą komórkę zgodnie z jej zawartością:

Automatyczne dopasowanie tabeli do okna

Gdy do tabeli zostanie zastosowane automatyczne dopasowanie do okna, w tle faktycznie wykonywane są następujące operacje:

  1. Właściwość Table.AllowAutoFit umożliwia automatyczną zmianę rozmiaru kolumn w celu dopasowania ich do dostępnej treści przy użyciu wartości Table.PreferredWidth wynoszącej 100%
  2. CellFormat.PreferredWidth zostanie usunięty ze wszystkich komórek tabeli
  3. Szerokości kolumn są przeliczane pod kątem aktualnej zawartości tabeli – efektem końcowym jest tabela zajmująca całą dostępną szerokość
  4. Szerokość kolumn tabeli zmienia się automatycznie w miarę edycji tekstu przez użytkownika

Poniższy przykład kodu pokazuje, jak automatycznie dopasować tabelę do szerokości strony:

Automatyczne dopasowanie tabeli do zawartości

Kiedy zawartość tabeli jest automatycznie dopasowywana, w tle wykonywane są następujące kroki:

  1. Właściwość Table.AllowAutoFit jest włączona, aby automatycznie zmieniać rozmiar każdej komórki zgodnie z jej zawartością

  2. Preferowana szerokość tabeli jest usuwana z Table.PreferredWidth, CellFormat.PreferredWidth jest usuwany dla każdej komórki tabeli

  3. Szerokość kolumn jest przeliczana dla aktualnej zawartości tabeli – efektem końcowym jest tabela, w której szerokość kolumn i szerokość całej tabeli są automatycznie dopasowywane do treści podczas edycji tekstu przez użytkownika

Poniższy przykład kodu pokazuje, jak automatycznie dopasować tabelę do jej zawartości:

Wyłącz automatyczne dopasowanie w tabeli i użyj stałych szerokości kolumn

Jeśli w tabeli wyłączono automatyczne dopasowanie i zamiast tego używane są stałe szerokości kolumn, wykonywane są następujące kroki:

  1. Właściwość Table.AllowAutoFit jest wyłączona, więc kolumny nie powiększają się ani nie zmniejszają do swojej zawartości
  2. Z Table.PreferredWidth usunięto preferowaną szerokość całej tabeli, ze wszystkich komórek tabeli usunięto CellFormat.PreferredWidth
  3. Efektem końcowym jest tabela, której szerokość kolumn jest określona przez właściwość CellFormat.Width i której rozmiar kolumn nie jest automatycznie zmieniany, gdy użytkownik wprowadza tekst lub gdy zmienia się rozmiar strony

Poniższy przykład kodu pokazuje, jak wyłączyć automatyczne dopasowanie i włączyć stałą szerokość dla określonej tabeli:

Kolejność pierwszeństwa przy obliczaniu szerokości komórki

Aspose.Words pozwala użytkownikom definiować szerokość tabeli lub komórki za pomocą wielu obiektów, w tym CellFormat – jego właściwość Width jest w większości pozostałością z poprzednich wersji, jednak nadal jest przydatna do uproszczenia ustawiania szerokości komórki.

Ważne jest, aby wiedzieć, że właściwość CellFormat.Width działa inaczej w zależności od tego, które inne właściwości szerokości już istnieją w tabeli.

Aspose.Words stosuje następującą kolejność obliczania szerokości komórek:

Zamówienie Nieruchomość Opis
1 AllowAutoFit jest określony Jeśli AutoFit jest włączony:
- stół może urosnąć powyżej preferowanej szerokości, aby pomieścić zawartość - zwykle nie zmniejsza się poniżej preferowanej szerokości
- jakakolwiek zmiana wartości CellFormat.Width zostanie zignorowana i zamiast tego komórka dopasuje się do jej zawartości
2 PreferredWidthType o wartości Points lub Percent CellFormat.Width jest ignorowany
3 PreferredWidthType o wartości Auto Wartość z CellFormat.Width jest kopiowana i staje się preferowaną szerokością komórki (w punktach)

Zezwalaj na odstępy między komórkami

Możesz uzyskać lub ustawić dowolny dodatkowy odstęp między komórkami tabeli, podobnie jak w przypadku opcji “Odstępy komórek” w Microsoft Word. Można to zrobić za pomocą właściwości AllowCellSpacing.

Przykład zastosowania tych opcji do rzeczywistej tabeli w dokumencie widać na poniższym obrazku.

formatowanie-odstępów-między-komórkami-układanie-słów-python

Poniższy przykład kodu pokazuje, jak ustawić odstępy między komórkami:

Stosowanie obramowań i cieniowania

Obramowania i cieniowanie można zastosować do całej tabeli przy użyciu formatów Table.SetBorder, Table.SetBorders i Table.SetShading lub tylko do określonych komórek przy użyciu formatów CellFormat.Borders i CellFormat.Shading. Dodatkowo granice wierszy można ustawić za pomocą pliku RowFormat.Borders, jednak w ten sposób nie można zastosować cieniowania.

Poniższe zdjęcia pokazują ustawienia obramowania i cienia w formacie Microsoft Word oraz odpowiadające im właściwości w formacie Aspose.Words.

formatting-border-line-aspose-words-python

formatting-cell-color-aspose-words-python

Poniższy przykład kodu pokazuje, jak sformatować tabelę i komórkę z różnymi obramowaniami i cieniami: