Dokumentace HotXLS

Metoda SetThemeColor

Nastaví barvu výplně stínování buňky (popředí) na jeden z 12 slotů barev motivu Office s volitelnou úpravou tónu. Doprovodná funkce pro Interior.Color pro volající, kteří chtějí adresovat barvy motivu Office přímo (aby Excel mohl přebarvit buňku paletou motivu sešitu) místo pevného nastavení konkrétní hodnoty RGB. Dostupná od v2.61.0 (vlna zásobníku grafů D fáze 4)

Syntaxe

procedure SetThemeColor(ThemeIdx: Word; Tint: Double);

Parametry

ThemeIdx — slot motivu na bázi 0: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink Odpovídá standardnímu pořadí motivů Office používanému na straně XLSX
Tint — úprava zesvětlení/ztmavení ve stylu specifikace v rozsahu -1.0 .. +1.0 0.0 používá základní barvu slotu motivu; záporné hodnoty ztmaví (světlost HSL k 0), kladné hodnoty zesvětlí (světlost HSL k 1). Čtecí část HotXLS toto kóduje jako Q15 celé číslo se znaménkem v poli FullColorExt.nTintShade záznamu XFExt

Poznámky

Přepínač prochází dvěma cestami, aby se stejná buňka správně vykreslila v Excelu 2007+ i Excelu 2003:
Buňky nastavené pomocí SetThemeColor se při načtení přenáší: Interior.Color vrátí přeloženou hodnotu RGB (motiv + tón aplikovaný přes paletu motivu BIFF), takže volající vždy vidí konkrétní hodnotu LongWord
Vlastní palety motivů nastavené v Excelu prostřednictvím Rozložení stránky → Barvy přežijí načtení a uložení prostřednictvím záznamu BIFF8 Theme ($0892), takže jakýkoli odkaz volajícího na SetThemeColor se přeloží přes skutečný motiv sešitu, nikoli výchozí schéma Office

Příklad

Vyplní řádek záhlaví barvou accent1 a označí varovné buňky 50% zesvětlenou červenou barvou (accent2 + tón 0,5)

var
  Header   : IXLSRange;
  Warnings : IXLSRange;
begin
  Header := Workbook.Sheets[1].Range['A1', 'G1'];
  Header.Interior.SetThemeColor(4, 0.0);   // accent1, base shade

  Warnings := Workbook.Sheets[1].Range['G2', 'G20'];
  Warnings.Interior.SetThemeColor(5, 0.5);   // accent2, 50% lighter

  Workbook.SaveAs('ThemeFills.xls', xlExcel97);
end;

Viz také