Połączenia komórek tabeli

Czasami pewne wiersze w tabeli wymagają nagłówka lub dużych bloków tekstu, które zajmują pełną szerokość tabeli. Dla prawidłowego projektowania tabeli, użytkownik może połączyć kilka komórek tabeli w jeden. Aspose.Words obsługuje połączone komórki podczas pracy ze wszystkimi formatami wejściowymi, w tym importując zawartość HTML.

Jak połączyć komórki tabeli

W Aspose.Words, Komórki połączone są reprezentowane przez następujące właściwości CellFormat klasa:

  • HorizontalMerge która opisuje, czy komórka jest częścią poziomego połączenia komórek
  • VerticalMerge która opisuje, czy komórka jest częścią pionowego połączenia komórek

Wartości tych właściwości decydują o łączeniu zachowania komórek:

work-with-merged-cells-aspose-words-java

Sprawdzanie, czy połączona jest komórka

Aby sprawdzić, czy komórka jest częścią sekwencji połączonych komórek, po prostu sprawdzić HorizontalMerge oraz VerticalMerge nieruchomości.

Poniższy przykład kodu pokazuje jak wydrukować typ połączenia poziomego i pionowego:

Łączenie komórek tabeli podczas korzystania z DocumentBuilder

Aby połączyć komórki w tabeli utworzonej z DocumentBuilder, musisz ustawić odpowiedni typ połączenia dla każdej komórki, w której oczekuje się połączenia - najpierw CellMerge.First i wtedy CellMerge.Previous.

Należy również pamiętać, aby wyczyścić ustawienie połączenia dla tych komórek, w których nie jest wymagane połączenie - można to zrobić poprzez ustawienie pierwszej komórki nie-połączenia do CellMerge.None. Jeśli nie zostanie to zrobione, wszystkie komórki w tabeli zostaną połączone.

Poniższy przykład kodu pokazuje, jak stworzyć tabelę z dwoma wierszami, gdzie komórki w pierwszym wierszu są łączone poziomo:

Poniższy przykład kodu pokazuje jak stworzyć tabelę dwukolumnową, gdzie komórki w pierwszej kolumnie są połączone pionowo:

Łączenie komórek tabeli w innych przypadkach

W innych sytuacjach DocumentBuilder nie jest stosowany, jak w istniejącej tabeli, łączenie komórek w poprzedni sposób może nie być tak łatwe. Zamiast tego, możemy zawinąć podstawowe operacje związane z zastosowaniem właściwości łączenia do komórek w sposób, który znacznie ułatwia zadanie. Metoda ta jest podobna do metody automatyzacji połączeń, która jest wywoływana do łączenia szeregu komórek w tabeli.

Poniższy kod połączy komórki tabeli w określonym zakresie, zaczynając od danej komórki i kończąc na końcowej komórce. W tym przypadku zakres może obejmować wiele wierszy lub kolumn:

Poniższy przykład kodu pokazuje jak połączyć szereg komórek pomiędzy dwoma określonymi komórkami:

Komórki pionowe i poziome połączone w tabeli HTML

Jak już mówiliśmy w poprzednich artykułach, tabela w Microsoft Word jest zbiorem niezależnych wierszy. Każdy wiersz posiada zbiór komórek niezależnych od komórek innych wierszy. Tak więc, w Microsoft Word tabeli nie ma takiego obiektu jak “kolumna”, a “pierwsza kolumna” jest czymś w rodzaju “zbiór 1 komórek każdego wiersza w tabeli”. Pozwala to użytkownikom na posiadanie tabeli, w której na przykład pierwszy rząd składa się z dwóch komórek - 2cm i 1cm, a drugi rząd składa się z dwóch różnych komórek - 1cm i 2cm szerokości. I Aspose.Words wspiera tę koncepcję tabel.

Tabela w HTML ma zasadniczo inną strukturę: każdy wiersz ma taką samą liczbę komórek i (ważne jest dla zadania) każda komórka ma szerokość odpowiedniej kolumny, taką samą dla wszystkich komórek w jednej kolumnie. Więc jeśli HorizontalMerge oraz VerticalMerge zwraca nieprawidłową wartość, użyj następującego przykładu kodu:

Przelicz do poziomu Komórki połączone

Czasami nie jest możliwe wykrycie, które komórki są połączone, ponieważ niektóre nowsze wersje Microsoft Word nie używać flag połączenia, gdy komórki są łączone poziomo. Ale w sytuacjach, gdy komórki są łączone poziomo przez ich szerokość za pomocą flag łączących, Aspose.Words zapewnia ConvertToHorizontallyMergedCells metoda konwersji komórek. Metoda ta po prostu zmienia tabelę i dodaje nowe komórki w razie potrzeby.

Poniższy przykład kodu pokazuje powyższą metodę w działaniu: