Метод 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);