Como trabalhar com o acesso condicional

Este tópico discute a classe Open XML SDK ConditionalFormatting e como ela se relaciona com o esquema SpreadsheetML do formato de arquivo Open XML. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento SpreadsheetML, consulte Estrutura de um documento SpreadsheetML.


Formatação condicional em SpreadsheetML

A formatação condicional baseada em célula fornece estrutura aos dados dentro de uma planilha. Mostrar cores, além de mostrar um valor, ajuda a distinguir a altura relativa desses valores. Existem várias opções de formatação que você pode aplicar às células com base em seu valor. Você pode realçar a maioria dos itens na parte superior ou inferior, fornecer barras de dados para mostrar uma interface do usuário do tipo barra de progresso ou usar escalas de cores para indicar os altos e baixos. A formatação condicional é aplicável diretamente a uma célula de uma planilha. O valor não precisa fazer parte de uma tabela.

Todas as configurações de formatação condicional são armazenadas no nível da planilha. A planilha armazena um <conditionalFormatting/> elemento para cada formato aplicado a uma célula ou série de células. O conjunto de células ao qual o formato é aplicado é definido usando o sqref atributo. O sqref atributo especifica um intervalo de células usando a notação 'de:para', por exemplo, 'A1:A10'.

A tabela a seguir lista as classes comuns do Open XML SDK usadas ao trabalhar com a ConditionalFormatting classe.

Elemento SpreadsheetML Classe Open XML SDK
<cfRule/> ConditionalFormattingRule
<dataBar/> DataBar
<colorScale/> ColorScale
<iconSet/> IconSet

Classe de formatação condicional do Open XML SDK

A classe Open XML SDK ConditionalFormatting representa o elemento table (<conditionalFormatting/>) definido no esquema Open XML File Format para documentos SpreadsheetML. Use a ConditionalFormatting classe para manipular elementos individuais <conditionalFormatting/> em um documento SpreadsheetML.

As seguintes informações da especificação ISO/IEC 29500 introduzem o ConditionalFormatting elemento (<conditionalFormatting/>).

Um Formato Condicional é um formato, como sombreamento de célula ou cor de fonte, que um aplicativo de planilha pode aplicar automaticamente às células se uma condição especificada for verdadeira. Essa coleção expressa regras de formatação condicional aplicadas a uma determinada célula ou intervalo.

Exemplo: Este exemplo aplica uma regra 'top10' às células C3:C8. As @dxfId referências à formatação (definida na parte estilos) a ser aplicada às células que corresponderem aos critérios.

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

© ISO/IEC 29500: 2016

Classe de regra de formatação condicional

As seguintes informações da especificação ISO/IEC 29500 introduzem o ConditionalFormattingRule elemento (<cfRule/>).

Essa coleção representa uma descrição de uma regra de formatação condicional.

Exemplo:

Este exemplo mostra uma regra de formatação condicional realçando células cujos valores são maiores do que 0,5. Observe que, nesse caso, o conteúdo de é um valor estático, mas também pode ser uma expressão de <formula/> fórmula.

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

Somente as regras com um valor de atributo de tipo de expressão dão suporte à sintaxe da fórmula.

© ISO/IEC 29500: 2016

Cada formato condicional tem permissão para especificar várias regras de formatação. Você pode aplicar a formatação de escala de cores e barra de dados ao mesmo tempo, por exemplo. Cada formato condicional é representado usando um elemento separado <cfRule/> . Para especificar a prioridade de exibição da interface do usuário, você pode usar o priority atributo. Como um <conditionalFormatting/> elemento pode se sobrepor a outras áreas formatadas na planilha, a prioridade é global para todos os formatos condicionais definidos para essa planilha.

O <cfRule/> elemento tem muitos tipos de formatação, como cellIs e top10, que podem ser aplicados. Cada tipo de formatação usa elementos comuns para definir suas configurações. Para obter mais informações sobre atributos de regra de formatação condicional, consulte a especificação ISO/IEC 29500.

Classe da Barra de Dados

As seguintes informações da especificação ISO/IEC 29500 introduzem o DataBar elemento (<dataBar/>).

Descreve uma regra de formatação condicional da barra de dados.

Exemplo:

Neste exemplo, um formato condicional de barra de dados é expresso, que se espalha por todos os valores de célula no intervalo de células e cuja cor é azul.

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

O comprimento da barra de dados de qualquer célula pode ser calculado da seguinte maneira:

Comprimento da barra de dados = minLength + (valor da célula - valor mínimo no intervalo) / (valor máximo no intervalo - valor mínimo no intervalo) * (maxLength - minLength),

em que o comprimento mínimo e máximo são uma porcentagem fixa da largura da coluna (por padrão, 10% e 90%, respectivamente).

A diferença mínima de comprimento (ou quantidade de incremento) é de 1 pixel.

© ISO/IEC 29500: 2016

As barras de dados usam uma única cor e a exibem como uma barra. O comprimento da barra indica a altura relativa do valor da célula. Uma barra de dados usa um modelo separado dentro da regra de formatação condicional para definir suas configurações. O <dataBar/> elemento armazena todos os dados relevantes. Uma barra de dados requer três configurações: os valores mínimo e máximo para comparar os valores da célula e uma cor. O primeiro <cfvo/> elemento, ou objeto de valor de formato condicional, define o valor mínimo, e o segundo <cfvo/> elemento define o valor máximo. Você pode usar diferentes maneiras de especificar um valor, como usar uma fórmula ou um valor embutido em código. Outra opção comum é usar os tipos 'min' e 'max'. Esses <cfvo/> tipos de elementos especificam os valores mínimo e máximo encontrados no intervalo de células que têm o formato aplicado. Isso fornece um gradiente escalonado limpo entre os itens mais baixos e mais altos. Além disso, você pode especificar a cor da barra de dados usando o <color/> elemento.

Classe de escala de cores

As seguintes informações da especificação ISO/IEC 29500 introduzem o ColorScale elemento (<colorScale/>).

Descreve uma escala de cores graduada nessa regra de formatação condicional.

Exemplo:

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

© ISO/IEC 29500: 2016

As escalas de cores fornecem uma exibição que indica o valor relativo entre todos os itens de célula, semelhante a uma barra de dados. Uma escala de cores usa um modelo separado dentro da regra de formatação condicional para definir suas configurações. Você pode especificar até três <cfvo/>valores de elemento de objeto de valor de formato condicional: um para o início da escala, um para o meio da escala e um para o final da escala. O valor intermediário é opcional. Além disso, você pode especificar a cor da escala de cores usando o <color/> elemento.

Classe de Conjunto de Ícones

As seguintes informações da especificação ISO/IEC 29500 introduzem o IconSet elemento (<iconSet/>).

Descreve uma regra de formatação condicional de conjunto de ícones.

Exemplo: Este exemplo demonstra o estilo de ícones "3Arrows". O primeiro ícone no conjunto deverá ser mostrado se o valor da célula for menor que o percentil 33. O segundo ícone no conjunto deverá ser mostrado se o valor da célula for menor que o percentil 67 e maior ou igual ao percentil 33. O terceiro ícone no conjunto deverá ser mostrado se o valor da célula for maior ou igual ao percentil 67.

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

© ISO/IEC 29500: 2016

Usando conjuntos de ícones, você pode aplicar diferentes conjuntos de ícones às células que contêm seus dados. O conjunto de ícones usa um intervalo de valores para identificar a qual conjunto de células aplicar a regra de formatação. O primeiro <cfvo/> elemento identifica o valor mais baixo do intervalo, o segundo <cfvo/>elemento identifica o ponto médio e o terceiro <cfvo/> elemento identifica o valor mais alto. Um conjunto de ícones identifica quais ícones aplicar às células. Você pode escolher entre vários ícones codificados. Para obter mais informações sobre quais ícones estão disponíveis, consulte a especificação ISO/IEC 29500.