Поделиться через


Работа с условным форматированием

В этом разделе рассматривается класс Open XML SDK ConditionalFormatting и его связь со схемой SpreadsheetML формата файла Open XML. Дополнительные сведения об общей структуре частей и элементов, составляющих документ SpreadsheetML, см. в разделе Структура документа SpreadsheetML.


Условное форматирование в SpreadsheetML

Условное форматирование ячеек помогает лучше структурировать данные на листе. Когда в дополнение к значению, содержащемуся в ячейке, она выделяется цветом, различия между значениями становятся более наглядными. Доступно несколько видов условного форматирования, которые можно применять к ячейкам в зависимости от их значений. Можно выделять ячейки с максимальными и минимальными значениями, создавать гистограммы, помогающие пользователю лучше понять ход выполнения, или применять к значениям кодирование по цветовой шкале. Условное форматирование можно применять непосредственно к ячейкам на листе. Значение не обязательно должно быть частью таблицы.

Все параметры условного форматирования хранятся на уровне листа. На листе хранится по одному <conditionalFormatting/> элементу для каждого формата, примененного к ячейке или рядам ячеек. Коллекция ячеек, к которым применяется формат, определяется с помощью атрибута sqref . Атрибут sqref задает диапазон ячеек с использованием нотации from:to, например A1:A10.

В следующей таблице перечислены распространенные классы open XML SDK, используемые при работе с классом ConditionalFormatting .

Элемент SpreadsheetML Класс пакета SDK Open XML
<cfRule/> ConditionalFormattingRule
<dataBar/> DataBar
<colorScale/> ColorScale
<iconSet/> IconSet

Класс условного форматирования пакета SDK Open XML

Класс Open XML SDK ConditionalFormatting представляет элемент таблицы (<conditionalFormatting/>), определенный в схеме формата файлов Open XML для документов SpreadsheetML. Используйте класс для ConditionalFormatting управления отдельными <conditionalFormatting/> элементами в документе SpreadsheetML.

В следующей информации из спецификации ISO/IEC 29500 представлен ConditionalFormatting элемент (<conditionalFormatting/>).

Условное форматирование — это изменение внешнего вида ячейки в приложении электронных таблиц, например заливка ячейки или изменение цвета шрифта; такое форматирование автоматически применяется к ячейкам, соответствующим определенному условию. Данный набор выражает правила условного форматирования, применяемые к ячейке или диапазону.

Пример. В этом примере правило top10 применяется к ячейкам C3:C8. Ссылается @dxfId на форматирование (определенное в части стилей), которое будет применяться к ячейкам, соответствующим условиям.

    <conditionalFormatting sqref="C3:C8">
        <cfRule type="top10" dxfId="1" priority="3" rank="2"/>
    </conditionalFormatting>

© ISO/IEC 29500: 2016

Класс ConditionalFormattingRule

В следующей информации из спецификации ISO/IEC 29500 представлен ConditionalFormattingRule элемент (<cfRule/>).

В этом наборе содержится описание правила условного форматирования.

Пример:

В этом примере показано правило условного форматирования, позволяющее выделить ячейки со значениями выше 0,5. Обратите внимание на то, что в данном случае элемент <formula/> содержит статическое значение, хотя это может быть и выражение.

    <conditionalFormatting sqref="E3:E9">
        <cfRule type="cellIs" dxfId="0" priority="1" operator="greaterThan">
            <formula>0.5</formula>
        </cfRule>
    <conditionalFormatting>

Синтаксис формул поддерживается только в тех правилах, в которых атрибут type имеет значение выражения.

© ISO/IEC 29500: 2016

Для каждого вида условного форматирования можно определять различные правила форматирования. Например, можно одновременно применить цветовую шкалу и гистограмму. Каждый условный формат представлен с помощью отдельного <cfRule/> элемента. Чтобы указать приоритет отображения пользовательского priority интерфейса, можно использовать атрибут . <conditionalFormatting/> Так как элемент может перекрывать другие отформатированные области листа, приоритет является глобальным для всех условных форматов, определенных для этого листа.

Элемент <cfRule/> имеет множество типов форматирования, таких как cellIs и top10, которые можно применить. Каждый тип форматирования настраивается с использованием общих элементов. Дополнительные сведения об атрибутах правил условного форматирования см. в спецификации ISO/IEC 29500.

Класс DataBar

В следующей информации из спецификации ISO/IEC 29500 представлен DataBar элемент (<dataBar/>).

Этот класс описывает правило условного форматирования в виде гистограммы.

Пример:

В этом примере показано условное форматирование в виде гистограммы, охватывающей все значения в диапазоне ячеек и выделенной синим цветом.

    <dataBar>
        <cfvo type="min" val="0"/>
        <cfvo type="max" val="0"/>
        <color rgb="FF638EC6"/>
    </dataBar>

Длина полосы гистограммы для каждой ячейки рассчитывается по следующей формуле:

Длина полосы гистограммы = минимальная длина + (значение в ячейке - минимальное значение в диапазоне) / (максимальное значение в диапазоне - минимальное значение в диапазоне) * (максимальная длина - минимальная длина),

где минимальная и максимальная длины определяются в процентах от ширины столбца (по умолчанию 10 % и 90 % соответственно).

Минимальная разница в длине (то есть приращение) составляет 1 пиксель.

© ISO/IEC 29500: 2016

Гистограмма состоит из полос одного цвета. Длина полосы указывает на относительную величину значения в ячейке. Параметры гистограммы задаются отдельной моделью в правиле условного форматирования. Элемент <dataBar/> хранит все соответствующие данные. Для построения гистограммы требуются три параметра: минимальное значение, максимальное значение (с которыми сравниваются значения в ячейках) и цвет. Первый <cfvo/> элемент, или объект значения условного формата, определяет минимальное значение, второй <cfvo/> — максимальное значение. Можно указать значение различными способами, например определить как формулу или жестко запрограммировать. Можно также использовать типы "min" и "max". Эти <cfvo/> типы элементов указывают минимальное и максимальное значения, найденные в диапазоне ячеек с примененным форматом. Это обеспечивает понятный постепенный переход от наименьших значений к наибольшим. Кроме того, можно указать цвет панели данных с помощью <color/> элемента .

Класс ColorScale

В следующей информации из спецификации ISO/IEC 29500 представлен ColorScale элемент (<colorScale/>).

Этот класс описывает плавную цветовую шкалу для данного правила условного форматирования.

Пример:

    <colorScale>
        <cfvo type="min" val="0"/>
        <cfvo type="max" val="0"/>
        <color theme="5"/>
        <color rgb="FFFFEF9C"/>
    </colorScale>

© ISO/IEC 29500: 2016

Цветовые шкалы позволяют наглядно показать различия между значениями в ячейках так же, как и при использовании гистограмм. Параметры цветовой шкалы задаются отдельной моделью в правиле условного форматирования. Можно указать до трех <cfvo/>объектов или значений условного формата, значений элементов: одно для начала шкалы, одно — для середины шкалы, а другое — для конца шкалы. Значение в середине устанавливать не обязательно. Кроме того, можно указать цвет цветовой шкалы <color/> с помощью элемента .

Класс IconSet

В следующей информации из спецификации ISO/IEC 29500 представлен IconSet элемент (<iconSet/>).

Этот класс описывает правило условного форматирования с набором значков.

Пример. В этом примере демонстрируется стиль значков "3Arrows". Первый значок в наборе должен отображаться, если значение ячейки меньше 33-го процентиля. Второй значок в наборе должен отображаться, если значение ячейки меньше 67-го процентиля и больше или равно 33-му процентилю. Третий значок в наборе должен отображаться, если значение ячейки больше или равно 67-му процентилю.

    <iconSet iconSet="3Arrows">
        <cfvo type="percentile" val="0"/>
        <cfvo type="percentile" val="33"/>
        <cfvo type="percentile" val="67"/>
    </iconSet>

© ISO/IEC 29500: 2016

К ячейкам с данными можно применять различные наборы значков. При форматировании с набором значков используется диапазон значений, определяющих, к какому набору ячеек следует применять правило форматирования. Первый <cfvo/> элемент определяет наименьшее значение диапазона, второй <cfvo/>— среднюю точку, а третий <cfvo/> — наибольшее значение. При форматировании с набором значков также можно определить, какие значки будут применяться к ячейкам. Можно выбрать из нескольких готовых наборов значков. Дополнительные сведения о доступных значках см. в спецификации ISO/IEC 29500.