使用条件格式

上次修改时间: 2010年10月8日

适用范围: Excel 2010 | Office 2010 | PowerPoint 2010 | Word 2010

本主题讨论 Open XML SDK 2.0ConditionalFormatting 类以及它与 Open XML 文件格式 SpreadsheetML 架构的关系。有关构成 SpreadsheetML 文档的部件和元素的整体结构的详细信息,请参阅 SpreadsheetML 文档的结构

SpreadsheetML 中的条件格式

基于单元格的条件格式可为工作表内的数据提供结构。在显示值的同时显示颜色有助于区分这些值的相对高度。可以基于单元格的值对单元格应用多个格式选项。可以突出显示排在顶部或底部的项、提供数据栏来显示进度条类型用户界面,或者使用色阶指示高值和低值。条件格式可直接应用于工作表中的单元格。值不一定为表的一部分。

所有条件格式设置存储在工作表级别。工作表会为应用于单元格或单元格序列的每个格式存储一个 <conditionalFormatting> 元素。应用了格式的单元格集合是使用 sqref 属性来定义的。sqref 属性可使用"from:to"表示法指定单元格区域,例如"A1:A10"。

下表列出了在处理 ConditionalFormatting 类时常用的 Open XML SDK 2.0 类。

SpreadsheetML 元素

Open XML SDK 2.0 类

cfRule

ConditionalFormattingRule

dataBar

DataBar

colorScale

ColorScale

iconSet

IconSet

Open XML SDK 2.0 条件格式类

Open XML SDK 2.0ConditionalFormatting 类表示在 SpreadsheetML 文档的 Open XML 文件格式架构中定义的表 (<conditionalFormatting>) 元素。使用 ConditionalFormatting 类可对 SpreadsheetML 文档中的各个 <conditionalFormatting> 元素执行操作。

来自 ISO/IEC 29500(该链接可能指向英文页面) 规范的以下信息介绍了 ConditionalFormatting (<conditionalFormatting>) 元素。

条件格式是在指定条件成立时电子表格应用程序可以自动应用于单元格的格式(如单元格底纹或字体颜色)。此集合表示应用于特定单元格或区域的条件格式规则。

[示例:此示例对单元格 C3:C8 应用"top10"规则。@dxfId 引用与条件匹配的单元格所要应用的格式(在样式部件中定义)。

    <conditionalFormatting sqref="C3:C8">

        <cfRule type="top10" dxfId="1" priority="3" rank="2"/>

    </conditionalFormatting>

示例结束]

© ISO/IEC29500: 2008。

条件格式规则类

来自 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>

示例结束]

只有具有表达式的类型属性值的规则才支持公式语法。

© ISO/IEC29500: 2008。

每个条件格式可以指定多种格式规则。例如,可以同时应用色阶和数据栏格式。每个条件格式用单独的 <cfRule> 元素来表示。若要指定其用户界面显示优先级,可以使用 priority 属性。由于 <conditionalFormatting> 元素可能与工作表中的其他格式区域重叠,因此对于为该工作表定义的所有条件格式而言,优先级是全局性的。

<cfRule> 元素具有许多可应用的格式类型,如 cellIs 和 top10。每种格式类型都使用常用元素来定义其设置。有关条件格式规则属性的详细信息,请参阅 ISO/IEC 29500 规范。

数据栏类

来自 ISO/IEC 29500 规范的以下信息介绍了 DataBar (<dataBar>) 元素。

描述数据栏条件格式规则。

[示例:

在此示例中,表达了一个数据栏条件格式,该格式分布在单元格区域内的所有单元格值中,其颜色为蓝色。

          <dataBar>

        <cfvo type="min" val="0"/>

        <cfvo type="max" val="0"/>

        <color rgb="FF638EC6"/>

                            </dataBar>

示例结束]

可按如下方式计算任意单元格的数据栏长度:

数据栏长度 = 最小长度 + (单元格值 - 区域中的最小值) / (区域中的最大值 - 区域中的最小值) * (最大长度 - 最小长度),

其中,最小长度和最大长度是列宽的固定百分比(默认情况下分别为 10% 和 90%。)

最小长度差异(或增量)为一个像素。

© ISO/IEC29500: 2008。

数据栏采用单一颜色并显示为条。条的长度指示单元格值的相对高度。数据栏使用条件格式规则内的单独模型定义其设置。<dataBar> 元素存储所有相关数据。数据栏需要三个设置:与单元格值进行比较的最小值和最大值以及颜色。第一个 <cfvo> 元素(即条件格式值对象)定义最小值,第二个 <cfvo> 元素定义最大值。可以使用不同方式指定值,如使用公式或硬编码值。另一种常用的选择方案是使用"min"和"max"类型。这些 <cfvo> 元素类型指定在单元格区域中找到的已应用格式的最小值和最大值。这样可以在最低项和最高项之间提供清晰的阶梯式渐变。此外,还可以使用 <color> 元素指定数据栏的颜色。

色阶类

来自 ISO/IEC 29500 规范的以下信息介绍了 ColorScale (<colorScale>) 元素。

描述此条件格式规则中的渐变色阶。

[示例:

                                                <colorScale>

        <cfvo type="min" val="0"/>

        <cfvo type="max" val="0"/>

                                                <color theme="5"/>

                                                    <color rgb="FFFFEF9C"/>

    </colorScale>

示例结束]

© ISO/IEC29500: 2008。

色阶提供的显示可指示所有单元格项之间的相对值,这类似于数据栏。色阶使用条件格式规则中的单独模型定义其设置。最多可以指定三个 <cfvo>(即条件格式值对象)元素值:一个用于色阶的开始、一个用于色阶的中间、一个用于色阶的结尾。中间值是可选的。此外,还可以使用 <color> 元素指定色阶的颜色。

图标集类

来自 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/IEC29500: 2008。

使用图标集可以对包含数据的单元格应用不同的图标集合。图标集使用一系列值标识要对哪一组单元格应用格式规则。第一个 <cfvo> 元素标识该范围的最低值,第二个 <cfvo> 元素标识中间点,第三个 <cfvo> 元素标识最高值。图标集标识要应用于单元格的图标。可以从各种硬编码图标中进行选择。有关可用图标的详细信息,请参阅 ISO/IEC 29500 规范。