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.
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.
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.
Należy pamiętać, że Cell może być tylko węzłem podrzędnym Row. Jednocześnie w pliku Cell musi znajdować się co najmniej jeden plik Paragraph, aby można było zastosować do niego formatowanie.
Oprócz Paragraph możesz także wstawić Table do Cell.
Poniższe rysunki przedstawiają funkcje formatowania Cell w formacie Microsoft Word i odpowiadające im właściwości w formacie Aspose.Words.
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.
W większości przypadków zalecana jest preferowana komórka niż szerokość tabeli. Preferowana szerokość komórki jest bardziej zgodna ze specyfikacją formatu DOCX, a także modelem Aspose.Words.
Szerokość komórki jest w rzeczywistości wartością obliczoną dla formatu DOCX. Rzeczywista szerokość komórki może zależeć od wielu rzeczy. Na przykład zmiana marginesów strony lub preferowanej szerokości tabeli może wpłynąć na rzeczywistą szerokość komórki.
Preferowana szerokość komórki to właściwość komórki przechowywana w dokumencie. Nie zależy od niczego i nie zmienia się, gdy zmieniasz tabelę lub inne właściwości komórki.
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.
Przykład zastosowania tych opcji do rzeczywistej tabeli w dokumencie widać na poniższym obrazku.
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:
- 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%
- CellFormat.PreferredWidth zostanie usunięty ze wszystkich komórek tabeli
Należy zauważyć, że różni się to nieco od zachowania Microsoft Word, gdzie preferowana szerokość każdej komórki jest ustawiana na odpowiednie wartości w oparciu o jej bieżący rozmiar i zawartość. Aspose.Words nie aktualizuje preferowanej szerokości, więc zamiast tego jest ona po prostu czyszczona.
- Szerokości kolumn są przeliczane pod kątem aktualnej zawartości tabeli – efektem końcowym jest tabela zajmująca całą dostępną szerokość
- 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:
-
Właściwość Table.AllowAutoFit jest włączona, aby automatycznie zmieniać rozmiar każdej komórki zgodnie z jej zawartością
-
Preferowana szerokość tabeli jest usuwana z Table.PreferredWidth, CellFormat.PreferredWidth jest usuwany dla każdej komórki tabeli
Należy pamiętać, że ta opcja automatycznego dopasowania usuwa preferowaną szerokość z komórek, podobnie jak w Microsoft Word. Jeśli chcesz zachować rozmiary kolumn i zwiększyć lub zmniejszyć kolumny, aby dopasować je do treści, powinieneś ustawić właściwość Table.AllowAutoFit samodzielnie na True, zamiast używać skrótu automatycznego dopasowania. -
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:
- Właściwość Table.AllowAutoFit jest wyłączona, więc kolumny nie powiększają się ani nie zmniejszają do swojej zawartości
- Z Table.PreferredWidth usunięto preferowaną szerokość całej tabeli, ze wszystkich komórek tabeli usunięto CellFormat.PreferredWidth
- 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.
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.
Poniższy przykład kodu pokazuje, jak sformatować tabelę i komórkę z różnymi obramowaniami i cieniami: