Документация на HotXLS

Метод ScanIndexedColorUsage

Връща детерминиран опис на всичките 56 физически слота от палитрата на работната книга и на индексираните дефиниции и препратки, които ги използват

Методът е наличен както в IXLSWorkbook, така и в TXLSXWorkbook и не променя палитрата, клетките, стиловете, условните формати или състоянието на работната книга

Синтаксис

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Резултат

Върнатият масив винаги съдържа 56 записа във възходящ ред на физическите слотове от 8 до 63

ПолеЗначение
ColorIndexСъответният публичен индекс на палитрата от 1 до 56
PaletteSlotФизическият слот за индексиран цвят в BIFF или OOXML от 8 до 63
ARGBНормализираният непрозрачен цвят, съхраняван в момента в слота, или нула, ако не може да бъде разрешен
DefinitionCountБроят на индексираните дефиниции, сочещи към слота
ReferenceCountБроят на обектите, клетките или покритите позиции на условни формати, които сочат към тези дефиниции
KindsМножество, описващо всяка наблюдавана категория потребители
LockedИстина, когато слотът има поне една дефиниция или препратка и затова трябва да бъде запазен от план за оптимизация на палитрата

Покритие на потребителите

Kinds може да включва шрифтове, предни планове на запълвания, фонове на запълвания, градиенти, граници, условни формати, диаграми, фигури, коментари, настройки на листове и други индексирани потребители

Сканирането на Classic XLS включва шрифтове, запълвания и граници на XF, мрежести линии на листа, цветове на фигури и коментари, препратки към шрифтове в rich-text и диаграми, наследени условни формати и BIFF12 лентови диаграми или цветни скали

Сканирането на XLSX включва материализирани препратки към клетъчни стилове, наслагвания на стилове, именувани стилове, набори от шрифтове, запълвания, градиенти и граници, диференциални стилове, лентови диаграми и цветни скали

Директни RGB, тематични, автоматични, системни и невалидни цветови токени не заключват физически слотове на палитрата

Производителност и договор за състоянието

Сканирането обхожда само съхранените разредени клетки и съществуващите метаданни за стилове; то не материализира пакелирани клетки и не обхожда неизползвани координати на листа

Бройките използват насищаща 64-битова аритметика, така че големите диапазони не могат да се превъртят към по-малка стойност

Повторни извиквания върху непроменена работна книга връщат идентични записи и оставят бройките персонализирани цветове и статистиката на съхранението непроменени

Пример

Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
  if Usage[I].Locked then
    PreservePaletteSlot(Usage[I].PaletteSlot);

Вижте също