Práce se sloupci a řádky

Pro větší kontrolu nad tím, jak stoly fungují, se naučte manipulovat sloupy a řádky.

Najít index prvků tabulky

Sloupce, řádky a buňky jsou řízeny přístupem k vybranému uzelu dokumentu svým indexem. Nalezení indexu jakéhokoliv uzlu zahrnuje shromažďování všech dětských uzlů typu prvku z rodičovského uzlu, a pak pomocí IndexOf metoda pro nalezení indexu požadovaného uzelu v kolekci.

Najít index tabulky v dokumentu

Někdy je třeba změnit konkrétní tabulku v dokumentu. Chcete-li to udělat, můžete odkazovat na tabulku podle jejího indexu.

Následující příklad kódu ukazuje, jak získat index tabulky v dokumentu:

Nalezení indexu řádku v tabulce

Podobně budete muset provést změny konkrétního řádku ve vybrané tabulce. Chcete-li to udělat, můžete také odkazovat na řádek podle jeho indexu.

Následující příklad kódu ukazuje, jak získat index řádku v tabulce:

Nalezení indexu buňky v řadě

Nakonec možná budete muset provést změny v konkrétní buňce, a můžete to udělat také pomocí indexu buněk.

Následující příklad kódu ukazuje, jak získat index buňky v řádku:

Práce se sloupy

V Aspose.Words Document Object Model (DOM), Table Uzel se skládá z Row uzly a pak Cell uzly. Proto v Document Model objektu Aspose.Words, jako v dokumentu Word, neexistuje pojem sloupce.

Podle návrhu tabulky řádků v Microsoft Word a Aspose.Words jsou zcela nezávislé a základní vlastnosti a operace jsou obsaženy pouze v řádcích a buňkách tabulky. To dává tabulek schopnost mít některé zajímavé atributy:

  • Každý řádek tabulky může mít úplně jiný počet buněk
  • Vertikálně mohou mít buňky v každé řadě různou šířku
  • Je možné spojit tabulky s různými formáty řádku a počtem buněk

work-with-columns-aspose-words-java

Veškeré operace prováděné na sloupcích jsou ve skutečnosti “krátké zkratky,” které provádějí operaci kolektivně měnícími se řádkovými buňkami tak, aby to vypadalo, že jsou aplikovány na sloupce. To znamená, že můžete provádět operace na sloupcích jednoduše iterací nad stejným indexem buňky řádku tabulky.

Následující příklad kódu tyto operace zjednodušuje prokázáním třídy fasády, která shromažďuje buňky, které tvoří “sloupec” tabulky:

Následující příklad kódu ukazuje, jak vložit prázdný sloupec do tabulky:

Následující příklad kódu ukazuje, jak odstranit sloupec z tabulky v dokumentu:

Upřesnit řádky jako řádky záhlaví

První řádek tabulky můžete zopakovat jako řádek záhlaví pouze na první stránce nebo na každé stránce, pokud je tabulka rozdělena do několika. In Aspose.Words, můžete opakovat řádek záhlaví na každé stránce pomocí HeadingFormat majetek.

Můžete také označit více řádků záhlaví, pokud jsou tyto řádky umístěny jeden za druhým na začátku tabulky. K tomu musíte použít HeadingFormat vlastnosti těchto řádků.

Následující příklad kódu ukazuje, jak vytvořit tabulku, která obsahuje řádky záhlaví, které se opakují na následujících stránkách:

Udržet tabulky a řádky od prolomení napříč stránkami

Jsou chvíle, kdy by obsah tabulky neměl být rozdělen přes stránky. Například pokud je titul nad tabulkou, měl by být název a tabulka vždy na stejné stránce, aby se zachoval správný vzhled.

Existují dvě samostatné techniky, které jsou užitečné pro dosažení této funkce:

  • Allow row break across pages, která se použije pro řádky tabulky
  • Keep with next, který se použije na odstavce v tabulkách

Ve výchozím nastavení jsou výše uvedené vlastnosti zakázány.

keep-tables-and-rows-from-breaking-across-pages-aspose-words-java

Udržet řadu od prolomení napříč stránkami

To zahrnuje omezení obsahu uvnitř buněk řady od rozdělení přes stránku. In Microsoft Word, to lze nalézt v Tabulce Vlastnosti jako možnost ¶Allow row to break across page'. In Aspose.Words Toto je nalezeno pod RowFormat objekt a Row jako majetek RowFormat.AllowBreakAcrossPages.

keep-rows-from-breaking-across-pages-aspose-words-java

Následující příklad kódu ukazuje, jak zakázat rozbíjení řádků napříč stránkami pro každý řádek v tabulce:

Udržet stůl od prolomení napříč stránkami

Abychom zastavili rozdělení tabulky napříč stránkami, musíme upřesnit, že chceme, aby obsah obsažený v tabulce zůstal pohromadě.

Abych to udělal, Aspose.Words používá metodu, která umožňuje uživatelům vybrat tabulku a povolit KeepWithNext parametr do true pro každý odstavec uvnitř buněk tabulky. Výjimkou je poslední odstavec tabulky, který by měl být stanoven false.

keep-tables-from-breaking-across-pages-aspose-words-java

Následující příklad kódu ukazuje, jak nastavit tabulku, aby zůstali pohromadě na stejné stránce: