HotXLS-dokumentation

SetThemeColor method (Interior)

Sätter cellens skuggfyllnadsfärg (förgrund) till en av de 12 Office-temafärgplatserna med valfri justering av tint. Motsvarigheten till Interior.Color för anropare som vill adressera Office-temafärger direkt (så att Excel kan tona om cellen med arbetsbokens temapalett) i stället för att låsa en fast RGB. Tillgängligt sedan v2.61.0 (chart backlog våg D fas 4)

Syntax

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

Parametrar

ThemeIdx — 0-based theme slot: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink Matches the standard Office theme order used by the XLSX side
Tint — spec-style lighter/darker adjustment in the range -1.0 .. +1.0 0.0 använder temaplatsens basfärg; negativa värden mörkar (HSL-luminans mot 0), positiva värden ljusar (HSL-luminans mot 1). HotXLS-läsaren kodar detta som ett Q15-tecknat heltal i FullColorExt.nTintShade field of the XFExt record

Anmärkningar

Settern går två vägar så att samma cell renderas korrekt i både Excel 2007+ och Excel 2003:
Cells set via SetThemeColor round-trip on load: Interior.Color returnerar den upplösta RGB-färgen (tema + tint tillämpad via BIFF-temapaletten) så att anropare alltid ser ett konkret LongWord-värde
Custom theme palettes set in Excel via Page Layout → Colors överlever inläsning och sparning via BIFF8-posten Theme ($0892), så alla anroparsidiga SetThemeColor -referens slås upp genom arbetsbokens faktiska tema i stället för standardschemat Office

Exempel

Fyller rubrikraden med accent1 och märker varningsceller med en 50% ljusare röd accent (accent2 + 0.5 tint)

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;

Se även