Zastosuj Formatowanie
Każdy element tabeli można zastosować z innym formatowaniem. Na przykład formatowanie tabeli zostanie zastosowane do całej tabeli, formatowanie wierszy tylko do określonych wierszy, Formatowanie komórek tylko do niektórych komórek.
Aspose.Words zapewnia bogaty API do pobierania i stosowania formatowania do 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ługują Aspose.Words.
Zastosuj formatowanie do różnych węzłów
W tej sekcji przyjrzymy się zastosowaniu formatowania do różnych węzłów tabeli.
Formatowanie Poziomu 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 zdjęcia przedstawiają reprezentację funkcji formatowania Table w Microsoft Word i odpowiadających im właściwości w Aspose.Words.
Poniższy przykład kodu pokazuje, jak zastosować obramowanie konturu do tabeli:
Poniższy przykład kodu pokazuje, jak zbudować tabelę z włączonymi wszystkimi obramowaniami (siatka):
Formatowanie Na Poziomie Wiersza
Poziom rzędu
Poniższe zdjęcia przedstawiają reprezentację funkcji formatowania Row w Microsoft Word i odpowiadających im właściwości w Aspose.Words.
Poniższy przykład kodu pokazuje, jak zmodyfikować formatowanie wiersza tabeli:
Formatowanie Na Poziomie Komórki
Formatowanie na poziomie komórki jest kontrolowane przez klasy Cell, CellFormat i CellCollection.
Zauważ, że Cell może być tylko węzłem potomnym Row. Jednocześnie musi być co najmniej jeden Paragraph w Cell, aby można było zastosować do niego formatowanie.
Oprócz Paragraph Możesz również wstawić Table do Cell.
Poniższe zdjęcia przedstawiają reprezentację funkcji formatowania Cell w Microsoft Word i odpowiadających im właściwości w 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), aby dodać do lewej / górnej / prawej / dolnej części zawartości komórki:
Określ Wysokości 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ść row height - Height
- właściwość reguła wysokości dla danego wiersza - HeightRule
Jednocześnie dla każdego rzędu można ustawić inną wysokość-pozwala to na szerokie sterowanie ustawieniami stołu.
Poniższy przykład kodu pokazuje, jak utworzyć tabelę zawierającą pojedynczą komórkę i zastosować formatowanie wiersza:
Określanie szerokości tabel i komórek
Tabela w dokumencie Microsoft Word udostępnia kilka różnych sposobów zmiany rozmiaru tabeli i poszczególnych komórek. Te właściwości pozwalają na znaczną kontrolę nad wyglądem i zachowaniem tabeli, tak że Aspose.Words obsługuje zachowanie tabel, 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ść na poszczególnych komórkach
- 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 szczególnie przydatne, aby wiedzieć w takich przypadkach, w których układ tabeli nie pojawia się 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 z modelem Aspose.Words.
Szerokość komórki jest w rzeczywistości obliczoną wartością 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ę po zmianie tabeli lub innych właściwości komórki.
Jak korzystać z preferowanej szerokości
Pożądana szerokość tabeli lub pojedynczych komórek jest definiowana za pomocą właściwości preferred width, czyli rozmiaru, który element stara się dopasować. 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ść są ustawiane przy użyciu metod klasy PreferredWidth:
- metoda Auto określająca auto lub “brak preferowanej szerokości”
- metoda FromPercent określająca szerokość procentową
- metoda FromPoints określająca szerokość w punktach
Poniższe zdjęcia przedstawiają reprezentację preferred width setting features W Microsoft Word i odpowiadające im właściwości w Aspose.Words.
Przykład zastosowania tych opcji do rzeczywistej tabeli w dokumencie można zobaczyć na poniższym obrazku.
Określ preferowaną szerokość tabeli lub komórki
W Aspose.Words szerokości tabeli i komórek są ustawiane przy użyciu właściwości Table.PreferredWidth i właściwości CellFormat.PreferredWidth, z opcjami dostępnymi w wyliczeniu PreferredWidthType:
- Auto, co jest równoważne żadnemu preferowanemu zestawowi szerokości
- Percent, który pasuje do elementu względem dostępnego miejsca w oknie lub rozmiarze kontenera i ponownie oblicza wartość, gdy zmienia się dostępna szerokość
- Points, który odpowiada elementowi o określonej szerokości w punktach
Użycie właściwości Table.PreferredWidth spowoduje dostosowanie jej preferowanej szerokości względem kontenera: strony, kolumny tekstu lub zewnętrznej komórki tabeli, jeśli jest to tabela zagnieżdżona.
Poniższy przykład kodu pokazuje, jak ustawić tabelę na automatyczne dopasowanie do 50% szerokości strony:
Użycie właściwości CellFormat.PreferredWidth w danej komórce dostosuje jej preferowaną szerokość.
Poniższy przykład kodu pokazuje, jak ustawić różne preferowane ustawienia szerokości:
Znajdź preferowany typ szerokości i wartość
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ć Autofit
Właściwość AllowAutoFit pozwala komórkom w tabeli rosnąć i kurczyć się zgodnie z wybranym kryterium. Na przykład możesz użyć opcji AutoFit to Window, aby dopasować tabelę do szerokości strony, a opcji AutoFit to Content, aby umożliwić wzrost lub kurczenie się każdej komórki zgodnie z jej zawartością.
Domyślnie Aspose.Words wstawia nową tabelę za pomocą AutoFit to Window. Tabela będzie dopasowana 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 autofit jest stosowany do tabeli.
Ważne jest, aby wiedzieć, że metoda autofit jest w rzeczywistości skrótem, który stosuje różne właściwości do tabeli w tym samym czasie. Są to właściwości, które faktycznie nadają tabeli obserwowane zachowanie. Omówimy te właściwości dla każdej opcji autofit.
Poniższy przykład kodu pokazuje, jak ustawić tabelę, aby zmniejszyć lub powiększyć każdą komórkę zgodnie z jej zawartością:
AutoFit tabela do okna
Po zastosowaniu automatycznego dopasowania do okna do tabeli, następujące operacje są faktycznie wykonywane za kulisami:
- Właściwość Table.AllowAutoFit umożliwia automatyczną zmianę rozmiaru kolumn w celu dopasowania do dostępnej zawartości przy użyciu wartości Table.PreferredWidth równej 100%
- CellFormat.PreferredWidth jest usuwany ze wszystkich komórek tabeli
Zauważ, że różni się to nieco od zachowania Microsoft Word, w którym preferowana szerokość każdej komórki jest ustawiona na odpowiednie wartości na podstawie ich bieżącego rozmiaru i zawartości. Aspose.Words nie aktualizuje preferowanej szerokości, więc zamiast tego zostają wyczyszczone.
- Szerokości kolumn są ponownie obliczane dla bieżącej zawartości tabeli - wynikiem końcowym jest tabela zajmująca całą dostępną szerokość
- Szerokość kolumn w tabeli zmienia się automatycznie, gdy użytkownik edytuje tekst
Poniższy przykład kodu pokazuje, jak automatycznie dopasować tabelę do szerokości strony:
AutoFit tabela do treści
Gdy tabela jest automatycznie ustawiana zawartość, następujące kroki są faktycznie wykonywane za kulisami:
-
Właściwość Table.AllowAutoFit umożliwia automatyczną zmianę rozmiaru każdej komórki zgodnie z jej zawartością
-
Preferowana szerokość tabeli jest usuwana z Table.PreferredWidth, CellFormat.PreferredWidth jest usuwana dla każdej komórki tabeli
Zauważ, że ta opcja autofit usuwa preferowaną szerokość z komórek, tak jak w Microsoft Word. Jeśli chcesz zachować rozmiary kolumn i zwiększyć lub zmniejszyć kolumny, aby pasowały do zawartości, powinieneś ustawić właściwość Table.AllowAutoFit na True samodzielnie, zamiast używać skrótu autofit. -
Szerokości kolumn są ponownie obliczane dla bieżącej zawartości tabeli - wynikiem końcowym jest tabela, w której szerokość kolumn i szerokość całej tabeli są automatycznie zmieniane, aby jak najlepiej pasowały do treści, gdy użytkownik edytuje tekst
Poniższy przykład kodu pokazuje, jak automatycznie dopasować tabelę do jej zawartości:
Wyłącz AutoFit w tabeli i użyj stałych szerokości kolumn
Jeśli tabela ma wyłączone autofit i zamiast tego używane są stałe szerokości kolumn, wykonywane są następujące kroki:
- Table.AllowAutoFit właściwość jest wyłączona, więc kolumny nie rosną ani nie kurczą się do ich zawartości
- Preferowana szerokość całej tabeli jest usuwana z Table.PreferredWidth, CellFormat.PreferredWidth jest usuwana ze wszystkich komórek tabeli
- Wynikiem końcowym jest tabela, której szerokości kolumn są określone przez właściwość CellFormat.Width i której rozmiar kolumn nie jest automatycznie zmieniany, gdy użytkownik wprowadza tekst lub gdy strona jest zmieniana
Poniższy przykład kodu pokazuje, jak wyłączyć autofit i włączyć stałą szerokość dla określonej tabeli:
Kolejność pierwszeństwa przy obliczaniu szerokości komórki
Aspose.Words umożliwia użytkownikom definiowanie szerokości tabeli lub komórki za pomocą wielu obiektów, w tym CellFormat – jego właściwość Width jest w większości pozostawiona 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óra z innych właściwości szerokości już istnieje w tabeli.
Aspose.Words używa następującej kolejności do obliczania szerokości komórek:
Zamówienie | Nieruchomości | Opis |
---|---|---|
AllowAutoFit jest określona | Jeśli AutoFit jest włączony: - tabela może przekroczyć preferowaną szerokość, aby pomieścić zawartość-zwykle nie kurczy się poniżej preferowanej szerokości - każda zmiana wartości CellFormat.Width jest ignorowana, a komórka będzie pasować do jej zawartości |
|
PreferredWidthType o wartości Points lub Percent | CellFormat.Width jest ignorowany | |
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ć dowolną dodatkową przestrzeń między komórkami tabeli podobną do opcji" odstępy między komórkami " w Microsoft Word. Można to zrobić za pomocą właściwości AllowCellSpacing.
Przykład zastosowania tych opcji do rzeczywistej tabeli w dokumencie można zobaczyć na poniższym obrazku.
Poniższy przykład kodu pokazuje, jak ustawić odstępy między komórkami:
Zastosuj obramowania i cieniowanie
Obramowania i cieniowanie można zastosować do całej tabeli za pomocą Table.SetBorder, Table.SetBorders i Table.SetShading lub tylko do określonych komórek za pomocą CellFormat.Borders i CellFormat.Shading. Dodatkowo granice wierszy można ustawić za pomocą RowFormat.Borders, jednak cieniowanie nie może być stosowane w ten sposób.
Poniższe zdjęcia pokazują ustawienia obramowania i cienia w Microsoft Word i odpowiadające im właściwości w Aspose.Words.
Poniższy przykład kodu pokazuje, jak sformatować tabelę I komórkę z różnymi obramowaniami i cieniami: