Práce se sloupci a řádky
Chcete-li získat větší kontrolu nad tím, jak tabulky fungují, přečtěte si, jak manipulovat se sloupci a řádky.
Najděte Index prvku tabulky
Sloupce, řádky a buňky jsou spravovány přístupem k vybranému uzlu dokumentu podle jeho indexu. Nalezení indexu libovolného uzlu zahrnuje shromáždění všech podřízených uzlů typu prvku z nadřazeného uzlu a poté pomocí metody IndexOf vyhledejte index požadovaného uzlu v kolekci.
Vyhledání indexu tabulky v dokumentu
Někdy možná budete muset provést změny v konkrétní tabulce v dokumentu. Chcete-li to provést, můžete odkazovat na tabulku podle jejího indexu.
Následující příklad kódu ukazuje, jak načíst index tabulky v dokumentu:
Najděte Index řádku v tabulce
Podobně možná budete muset provést změny v konkrétním řádku ve vybrané tabulce. Chcete-li to provést, můžete také odkazovat na řádek podle jeho indexu.
Následující příklad kódu ukazuje, jak načíst index řádku v tabulce:
Najděte Index buňky v řádku
Nakonec možná budete muset provést změny v konkrétní buňce a můžete to provést také indexem buněk.
Následující příklad kódu ukazuje, jak načíst index buňky v řádku:
Práce se sloupci
V modelu objektu Aspose.Words dokumentu (DOM) se uzel Table skládá z uzlů Row a poté uzlů Cell. V objektovém modelu Document
Aspose.Words, stejně jako v dokumentech Word, tedy neexistuje koncept sloupce.
Podle návrhu jsou řádky tabulky v Microsoft Word a Aspose.Words zcela nezávislé a základní vlastnosti a operace jsou obsaženy pouze v řádcích a buňkách tabulky. To dává tabulkám možnost mít některé zajímavé atributy:
- Každý řádek tabulky může mít zcela jiný počet buněk
- Vertikálně mohou mít buňky každého řádku různé šířky
- Je možné spojit tabulky s různými formáty řádků a počtem buněk
Jakékoli operace prováděné na sloupcích jsou ve skutečnosti “zkratky”, které provádějí operaci kolektivní změnou buněk řádků takovým způsobem, že to vypadá, že se aplikují na sloupce. To znamená, že můžete provádět operace se sloupci jednoduše iterací přes stejný index buněk řádku tabulky.
Následující příklad kódu zjednodušuje takové operace prokázáním třídy fasád, 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 odebrat sloupec z tabulky v dokumentu:
Určete řádky jako řádky záhlaví
Můžete se rozhodnout opakovat první řádek v tabulce jako řádek záhlaví pouze na první stránce nebo na každé stránce, pokud je tabulka rozdělena na několik. V Aspose.Words můžete opakovat řádek záhlaví na každé stránce pomocí vlastnosti HeadingFormat.
Můžete také označit více řádků záhlaví, pokud jsou tyto řádky umístěny jeden po druhém na začátku tabulky. Chcete-li to provést, musíte na tyto řádky použít vlastnosti HeadingFormat.
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:
Zabraňte lámání tabulek a řádků napříč stránkami
Jsou chvíle, kdy by obsah tabulky neměl být rozdělen mezi stránky. Pokud je například název nad tabulkou, měl by být název a tabulka vždy drženy pohromadě na stejné stránce, aby byl zachován správný vzhled.
K dosažení této funkce jsou užitečné dvě samostatné techniky:
Allow row break across pages
, který se použije na řádky tabulkyKeep with next
, který se použije na odstavce v buňkách tabulky
Ve výchozím nastavení jsou výše uvedené vlastnosti zakázány.
Zabraňte lámání řádku mezi stránkami
To zahrnuje omezení rozdělení obsahu uvnitř buněk řádku na stránku. V Microsoft Word to lze nalézt pod vlastnostmi tabulky jako možnost “Povolit zalomení řádku mezi stránkami”. V Aspose.Words se to nachází pod RowFormat objektem Row jako vlastnost RowFormat.AllowBreakAcrossPages.
Následující příklad kódu ukazuje, jak zakázat lámání řádků napříč stránkami pro každý řádek v tabulce:
Zabraňte rozbití tabulky mezi stránkami
Abychom zabránili rozdělení tabulky mezi stránky, musíme určit, že chceme, aby obsah obsažený v tabulce zůstal pohromadě.
Chcete-li to provést, Aspose.Words používá metodu, která umožňuje uživatelům vybrat tabulku a povolit parametr KeepWithNext na hodnotu true pro každý odstavec v buňkách tabulky. Výjimkou je poslední odstavec v tabulce, který by měl být nastaven na hodnotu false.
Následující příklad kódu ukazuje, jak nastavit tabulku tak, aby zůstala pohromadě na stejné stránce: