Web SDK

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

Условное форматирование позволяет автоматически менять формат ячеек в зависимости от заданных условий и выделять важные данные или тенденции. Оно поддерживает различные условия и варианты форматирования, помогая воспринимать данные более наглядно.

Режим пресетов

Установка

Shell
pnpm add @univerjs/preset-sheets-conditional-formatting

Использование

TypeScript
import { UniverSheetsConditionalFormattingPreset } from '@univerjs/preset-sheets-conditional-formatting'import UniverPresetSheetsConditionalFormattingEnUS from '@univerjs/preset-sheets-conditional-formatting/locales/en-US'import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-conditional-formatting/lib/index.css'const { univerAPI } = createUniver({  locale: LocaleType.EN_US,  locales: {    [LocaleType.EN_US]: mergeLocales(      UniverPresetSheetsCoreEnUS,      UniverPresetSheetsConditionalFormattingEnUS,     ),  },  presets: [    UniverSheetsCorePreset(),    UniverSheetsConditionalFormattingPreset(),   ],})

Режим плагинов

Установка

Shell
pnpm add @univerjs/sheets-conditional-formatting @univerjs/sheets-conditional-formatting-ui

Использование

TypeScript
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import { UniverSheetsConditionalFormattingPlugin } from '@univerjs/sheets-conditional-formatting'import { UniverSheetsConditionalFormattingUIPlugin } from '@univerjs/sheets-conditional-formatting-ui'import SheetsConditionalFormattingUIEnUS from '@univerjs/sheets-conditional-formatting-ui/locale/en-US'import '@univerjs/sheets-conditional-formatting-ui/lib/index.css'import '@univerjs/sheets-conditional-formatting/facade'const univer = new Univer({  locale: LocaleType.EN_US,  locales: {    [LocaleType.EN_US]: mergeLocales(      SheetsConditionalFormattingUIEnUS,     ),  },})univer.registerPlugin(UniverSheetsConditionalFormattingPlugin)univer.registerPlugin(UniverSheetsConditionalFormattingUIPlugin)

Поддержка мобильных устройств

Сначала настройте мобильный редактор. В коде инициализации режима плагинов на этой странице замените указанные настольные регистрации мобильными экспортами тех же пакетов до открытия документа. Сохраните модели, стили, локализации и импорты Facade; не регистрируйте оба варианта.

ПакетНастольная регистрацияМобильная регистрация
@univerjs/sheets-conditional-formatting-uiUniverSheetsConditionalFormattingUIPluginUniverSheetsConditionalFormattingMobileUIPlugin

Facade API

Полные определения типов Facade API доступны в справочнике FacadeAPI.

Импорт

Примечание о режиме плагинов

Импортировать пакет Facade вручную требуется только в режиме плагинов. В режиме пресетов соответствующий пакет Facade уже подключён, поэтому дополнительный импорт не нужен.

TypeScript
import '@univerjs/sheets-conditional-formatting/facade'

Создание правил условного форматирования

Метод FWorksheet.newConditionalFormattingRule() создаёт построитель условного форматирования и возвращает экземпляр FConditionalFormattingBuilder, с помощью которого можно формировать правила условного форматирования цепочкой вызовов методов.

Некоторые методы FConditionalFormattingBuilder:

МетодОписание
buildФормирует правило условного форматирования
copyСоздаёт глубокую копию текущего построителя
createCfIdСоздаёт идентификатор условного форматирования
getRangesВозвращает область действия текущего условного форматирования
setRangesЗадаёт диапазон действия правила условного форматирования
setAverageЗадаёт правило условного форматирования по среднему значению
setUniqueValuesЗадаёт правило условного форматирования для уникальных значений
setDuplicateValuesЗадаёт правило условного форматирования для повторяющихся значений
setRankЗадаёт правило условного форматирования по рангу
setIconSetЗадаёт правило условного форматирования с набором значков
setColorScaleЗадаёт правило условного форматирования с цветовой шкалой
setDataBarЗадаёт правило условного форматирования с гистограммой
setBackgroundЗадаёт цвет фона условного форматирования
setBoldОпределяет, будет ли шрифт условного форматирования полужирным
setFontColorЗадаёт цвет шрифта условного форматирования
setItalicОпределяет, будет ли шрифт условного форматирования курсивным
setStrikethroughОпределяет, будет ли шрифт условного форматирования зачёркнутым
setUnderlineОпределяет, будет ли шрифт условного форматирования подчёркнутым
whenCellEmptyЗадаёт срабатывание правила условного форматирования для пустой ячейки
whenCellNotEmptyЗадаёт срабатывание правила условного форматирования для непустой ячейки
whenDateЗадаёт срабатывание правила условного форматирования, если дата входит в указанный период
whenFormulaSatisfiedЗадаёт срабатывание правила условного форматирования, если результат вычисления формулы равен true
whenNumberBetweenЗадаёт срабатывание правила условного форматирования, если число находится между двумя указанными значениями или равно одному из них
whenNumberEqualToЗадаёт срабатывание правила условного форматирования, если число равно указанному значению
whenNumberGreaterThanЗадаёт срабатывание правила условного форматирования, если число больше указанного значения
whenNumberGreaterThanOrEqualToЗадаёт срабатывание правила условного форматирования, если число больше указанного значения или равно ему
whenNumberLessThanЗадаёт срабатывание правила условного форматирования, если число меньше указанного значения
whenNumberLessThanOrEqualToЗадаёт срабатывание правила условного форматирования, если число меньше указанного значения или равно ему
whenNumberNotBetweenЗадаёт срабатывание правила условного форматирования, если число не находится между двумя указанными значениями и не равно ни одному из них
whenNumberNotEqualToЗадаёт срабатывание правила условного форматирования, если число не равно указанному значению
whenTextContainsЗадаёт срабатывание правила условного форматирования, если текст содержит указанное значение
whenTextDoesNotContainЗадаёт срабатывание правила условного форматирования, если текст не содержит указанное значение
whenTextEndsWithЗадаёт срабатывание правила условного форматирования, если текст заканчивается указанным значением
whenTextEqualToЗадаёт срабатывание правила условного форматирования, если текст совпадает с указанным значением
whenTextStartsWithЗадаёт срабатывание правила условного форматирования, если текст начинается с указанного значения
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Create a conditional formatting rule that sets the cell format to italic, red background, and green font color when the cell is not empty.const fRange = fWorksheet.getRange('A1:T100')const rule = fWorksheet.newConditionalFormattingRule()  .whenCellNotEmpty()  .setRanges([fRange.getRange()])  .setItalic(true)  .setBackground('red')  .setFontColor('green')  .build()fWorksheet.addConditionalFormattingRule(rule)

Получение правил условного форматирования

  • FWorksheet.getConditionalFormattingRules() возвращает все правила условного форматирования листа
  • FRange.getConditionalFormattingRules() возвращает все правила условного форматирования диапазона
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()// Get all conditional formatting rules of the active worksheetconst fWorksheet = fWorkbook.getActiveSheet()const rulesOfSheet = fWorksheet.getConditionalFormattingRules()// Get all conditional formatting rules of the range A1:T100const fRange = fWorksheet.getRange('A1:T100')const rulesOfRange = fRange.getConditionalFormattingRules()

Удаление правил условного форматирования

Метод FWorksheet.deleteConditionalFormattingRule(cfId) удаляет правило условного форматирования с листа, где cfId — идентификатор правила условного форматирования.

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rules = fWorksheet.getConditionalFormattingRules()// Remove the first conditional formatting rulefWorksheet.deleteConditionalFormattingRule(rules[0]?.cfId)

Обновление правил условного форматирования

Метод FWorksheet.setConditionalFormattingRule(cfId, rule) обновляет правило условного форматирования на листе, где cfId — идентификатор правила условного форматирования, а rule — новое правило.

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Create a conditional formatting rule that sets the cell format to italic, red background, and green font color when the cell is not empty.const fRange = fWorksheet.getRange('A1:T100')const rule = fWorksheet.newConditionalFormattingRule()  .whenCellNotEmpty()  .setRanges([fRange.getRange()])  .setItalic(true)  .setBackground('red')  .setFontColor('green')  .build()fWorksheet.addConditionalFormattingRule(rule)// Modify the first rule to apply to a new rangeconst rules = fWorksheet.getConditionalFormattingRules()const newRuleRange = fWorksheet.getRange('A1:D10')fWorksheet.setConditionalFormattingRule(rules[0]?.cfId, { ...rules[0], ranges: [newRuleRange.getRange()] })

Изменение приоритета правил условного форматирования

Метод FWorksheet.moveConditionalFormattingRule(cfId, toCfId, type) изменяет приоритет правила условного форматирования на листе, где cfId — идентификатор перемещаемого правила, toCfId — идентификатор целевого правила, а type задаёт тип перемещения (например, 'before' или 'after').

TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rules = fWorksheet.getConditionalFormattingRules()// Move the third rule before the first ruleconst rule = rules[2]const targetRule = rules[0]fWorksheet.moveConditionalFormattingRule(rule?.cfId, targetRule?.cfId, 'before')

Очистка всех правил условного форматирования

  • FWorksheet.clearConditionalFormatRules() удаляет все правила условного форматирования с листа.
  • FRange.clearConditionalFormatRules() удаляет все правила условного форматирования из диапазона.
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()// Clear all conditional formatting rules of the active worksheetconst fWorksheet = fWorkbook.getActiveSheet()fWorksheet.clearConditionalFormatRules()// Clear all conditional formatting rules of the range A1:T100const fRange = fWorksheet.getRange('A1:T100')fRange.clearConditionalFormatRules()

Повторное использование описаний и предпросмотра правил

Для собственных списков импортируйте getRuleDescribe и ConditionalFormattingRulePreview из @univerjs/sheets-conditional-formatting-ui. Передайте полное правило в getRuleDescribe(rule, localeService), а компоненту предпросмотра — только конфигурацию rule.rule. Предпросмотр показывает настроенный вид, не вычисляя значения ячеек. Отображайте его в React-контексте Univer.

CF_PANEL_KEY — ключ встроенной панели для переопределения компонента. IConditionFormattingPanelProps.onEditorExit вызывается при завершении редактирования после отправки, отмены, активации или удаления листа. Он не означает успешное сохранение или закрытие боковой панели.

TSX
import type { IConditionFormattingRule } from '@univerjs/sheets-conditional-formatting'import { LocaleService } from '@univerjs/core'import { ConditionalFormattingRulePreview, getRuleDescribe } from '@univerjs/sheets-conditional-formatting-ui'import { useDependency } from '@univerjs/ui'interface IRuleSummaryProps {  rule: IConditionFormattingRule}function RuleSummary({ rule }: IRuleSummaryProps) {  const localeService = useDependency(LocaleService)  return (    <div>      <span>{getRuleDescribe(rule, localeService)}</span>      <ConditionalFormattingRulePreview rule={rule.rule} />    </div>  )}

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.