Formátování buněk – barvy, zarovnání, orientace...

programovani.png Formátování je nedílnou součástí každého dokumentu, který má vypadat alespoň trochu k světu. Formátovat lze buď pomocí stylů, nebo přímo nastavovat buňky, oblasti a listy. Vzhledem k rozsáhlosti tématu budou o formátování celkem tři díly. V tomto díle se dozvíte, jak nastavovat barvy, pozadí a zarovnání v buňkách. Naučíte se také, jak nastavit buňku jako zamknutou a skrytou při tisku.  

Podle mého názoru je lepší nastavovat formáty přímo v dokumentu, nebo přes Formát | Podmíněné formátování a ochranu provádět makrem přes uzamčení buněk a listů. Je to programově rychlejší a jednodušší, ale je možné, že to nemusí vyhovovat každému. Pokud budete makrem vytvářet zcela nový dokument, nastavení pomocí makra se nevyhnete. Samozřejmě také nejde pomocí podmíněného formátování nastavit například záhlaví a zápatí. Spolu s jeho vlastnostmi můžete i toto nastavovat automaticky pomocí makra.

TIP: Platí, že všechna nastavení, která neměníte makrem, jsou dána aktuálním přiřazeným stylem/formátem. Není nutné například nastavovat makrem orientaci stránky na výšku, protože jde o výchozí nastavení. Na cokoliv, co nezměníte, bude použito výchozí formátování.

K nejčastějším změnám ve formátování patří změna barvy:

Barvy v OpenOffice.org

K nastavení barvy jako takové slouží funkce RGB. Tato funkce požaduje tři vstupní hodnoty. Jsou to hodnoty pro červenou, zelenou a modrou barvu. Pro představu si zadejte volbu Nástroje | Volby | Barvy, kde si můžete zkusit nastavit vlastní barvy, právě prostřednictvím funkce RGB. Makro můžete zapsat například takto:

dim cervena as integer, zelena as integer, modra as integer
cervena = 1
zelena = 130
modra = 255
rozsah.CellBackColor = RGB(cervena, zelena, modra)

Nebo použijete výše zmíněný, ale kratší zápis:

rozsah.CellBackColor = RGB(1, 130, 255)

Funkce vrátí jednu číselnou hodnotu barvy. V podstatě sloučí všechny tři údaje do jednoho. Čísla jednotlivých barev můžete zadávat v rozmezí 0–255. Kombinací je mnoho. Pro nastavení barev slouží i jiná funkce (QBColor), kde nastavujete přímo jedno číslo barvy. Doporučuji však používat funkci RGB, a to proto, že si můžete barvy vyzkoušet ještě předtím, než je zadáte do makra. Zkoušku můžete provést přes volby Nástroje | Volby | Barvy, kde je možné nastavení vlastních barev právě pomocí funkce RGB.

Nastavení vlastních barev v OpenOffice.org Nastavení vlastních barev v OpenOffice.org

TIP: Ještě existují funkce Red, Green a Blue. Tyto funkce jsou opakem funkce RGB. Zatímco RGB tyto hodnoty skládá do výsledné barvy, pomocí těchto funkcí můžete zjistit, jaké konkrétní hodnoty má barva, kterou testujete (zjistí jednotlivé barvy funkce RGB).

Formátování buňky

Pokud chcete formátovat buňku, musíte k ní získat přístup. To již umíte. Když je buňka definovaná (přiřazená k proměnné), formátujete ji názvem proměnné, přiřazením k příkazu a nastavením hodnoty formátu. Toto již také znáte, jen ne s buňkami.

bunka = thisComponent.sheets(0).getCellByPosition(0, 0)
bunka.CellBackColor = RGB (128, 0,128)

Tímto způsobem jste nastavili pozadí buňky na fialovou.

Nastavení barvy v buňce Nastavení barvy v buňce

Pokud chcete nastavovat více vlastností, využijte pomoc funkce with, se kterou jste se již v tomto seriálu také setkali.

with bunka
 .CellBackColor = RGB (128, 0,128)
 ' nastavení dalších vlastností
end with

TIP: Samozřejmě nemusíte nastavovat každou buňku zvlášť. Vše zde uvedené platí i pro oblasti buněk, jen do proměnné přiřadíte jejich rozsah. Např. rozsah = thisComponent.sheets(0).getCellRangeByPosition(0, 0, 5, 5) → rozsah.CellBackColor = RGB(128, 0, 128).

Pozadí buňky

Jako další možnost při nastavení pozadí buňky je, mimo nastavení barvy, zda se při změně barvy má měnit i barva písma tak, aby bylo vždy kontrastní. Nastavení provedete pomocí příkazu IsCellBackGroundTransparent.

bunka = thisComponent.sheets(0).getCellByPosition(0,0)
bunka.IsCellBackGroundTransparent = True

Zarovnání v buňce

Stejně jako v sešitu nastavujete zarovnání buněk v makru. Zarovnání jako takové můžete rozdělit na horizontální (vodorovné) a vertikální (svislé).

Vodorovné zarovnání

Všech pět druhů zarovnání nastavujete následujícím způsobem.

bunka = thisComponent.sheets(0).getCellByPosition(0,0)
bunka.HoriJustify = com.sun.star.table.CellHoriJustify.STANDARD ' standardní
Další možnosti nastavení jsou:
.CellHoriJustify.LEFT ' vlevo
.CellHoriJustify.RIGHT ' vpravo
.CellHoriJustify.CENTER ' na střed 
.CellHoriJustify.BLOCK ' do bloku

Nastavení zarovnání zprava Nastavení zarovnání zprava

TIP Standardní zarovnání se řídí obsahem buňky. U textu je nastaveno zarovnání vlevo, u čísel vpravo.

Svislé zarovnání

Základní volby standard, nahoru, dolů a na střed nastavujete obdobně.

bunka = thisComponent.sheets(0).getCellByPosition(0,0)
bunka.VertJustify = com.sun.star.table.CellVertJustify.STANDARD ' standardní
I zde je více možností nastavení:
.CellVertJustify.TOP ' nahoru
.CellVertJustify.BOTTOM ' dolu
.CellVertJustify.CENTER ' na střed 

Nastavení zarovnání nahoru Nastavení zarovnání nahoru

Orientace buňky

Orientace určuje, jakým směrem bude v buňce veden text. Nastavení opět totožné:

bunka = thisComponent.sheets(0).getCellByPosition(0,0)
bunka.Orientation = com.sun.star.table.CellOrientation.STANDARD ' standardní
Pro ostatní nastavení použijete tyto příkazy
.CellOrientation.TOPBOTTOM ' zhora dolu
.CellOrientation.BOTTOMTOP ' zdola nahoru
.CellOrientation.STACKED ' pod sebe 

Nastavení orientace v buňce shora dolu Nastavení orientace v buňce shora dolu

Rotace

Když již umíte nastavit centrování a směr textu, naučte se i rotovat text o určený počet stupňů.

bunka = thisComponent.sheets(0).getCellByPosition(0,0)
bunka.RotateAngle = 4500 ' rotace o 45° (zadáváte v setinách stupňů)

Nastavení rotace v buňce o 45 ° Nastavení rotace v buňce o 45 °

Uzamčení buněk

Při výběru Formát | Buňky, záložka Ochrana buňky se nabízí výběr uzamčení/skrytí buněk. Makrem tyto vlastnosti nastavujete velmi jednoduše pomocí několika příkazů.

Záložka Ochrana buňky při formátování buněk

Záložka Ochrana buňky při formátování buněk

Ochranu buňky provedete pomocí struktury com.sun.star.util.CellProtection, kterou následně přiřadíte k příkazu k ochraně buňky.

oblast = thisComponent.sheets(0).getCellRangeByName("A1:D5")
dim ochrana as new com.sun.star.util.CellProtection
with ochrana
 .IsFormulaHidden = True
 .IsHidden = True
 .IsLocked = True
 .IsPrintHidden = True
 end With 
oblast.CellProtection = ochrana

POZOR: všechny tyto vlastnosti se projeví teprve po uzamčení listu. Uzamknout list již umíte (list.Protected("heslo"). Pokud nebude list uzamčen, neprojeví se žádný z nastavených formátů.

Další možnosti formátování v Calcu si ukážeme v dalším díle. Zejména se budeme věnovat ohraničení a dalším vlastnostem buněk.

(Jako ve škole) Průměr: 1,00 | Hodnotilo: 6
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Daniel Sedláček

Daniel Sedláček

Amatérsky se věnuji programování maker od podzimu 2010.
Aktivní jsem na fóru od ledna 2011.
Od července 2011 spolupracuji i jako moderátor fóra.

Využívám pouze OpenOffice.org (LibreOffice nemám nainstalován).

 
 
 
woo jaw demo hz