Mise en forme conditionnelle

La mise en forme conditionnelle permet de modifier automatiquement le format des cellules selon des conditions précises, afin de mettre en évidence les données ou tendances importantes. Elle prend en charge différentes conditions et options de mise en forme, ce qui facilite une compréhension plus intuitive des données.

Mode plugin

Installation

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

Utilisation

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)

Prise en charge mobile

Configurez d’abord l’éditeur mobile. Dans l’initialisation en mode plugin de cette page, remplacez les inscriptions de bureau ci-dessous par les exports mobiles des mêmes paquets avant d’ouvrir un document. Conservez modèles, styles, traductions et imports Facade ; n’enregistrez pas les deux variantes.

PaquetInscription de bureauInscription mobile
@univerjs/sheets-conditional-formatting-uiUniverSheetsConditionalFormattingUIPluginUniverSheetsConditionalFormattingMobileUIPlugin

Mode preset

Installation

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

Utilisation

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(),   ],})

API Facade

Vous trouverez les définitions de types complètes de l’API Facade dans la FacadeAPI.

Importation

Remarque sur le mode plugin

Seul le mode plugin nécessite d’importer manuellement le package Facade. Le mode preset inclut déjà le package Facade correspondant ; aucune importation supplémentaire n’est donc nécessaire.

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

Créer des règles de mise en forme conditionnelle

FWorksheet.newConditionalFormattingRule() crée un générateur de mise en forme conditionnelle et renvoie une instance de FConditionalFormattingBuilder. Celle-ci permet de générer des règles de mise en forme conditionnelle en chaînant les méthodes.

Voici quelques méthodes membres de FConditionalFormattingBuilder :

MéthodeDescription
buildGénère la règle de mise en forme conditionnelle
copyCrée une copie complète du générateur actuel
createCfIdCrée un identifiant de mise en forme conditionnelle
getRangesObtient la plage d’application de la mise en forme conditionnelle actuelle
setRangesDéfinit la plage de la règle de mise en forme conditionnelle
setAverageDéfinit une règle de mise en forme conditionnelle basée sur la valeur moyenne
setUniqueValuesDéfinit une règle de mise en forme conditionnelle pour les valeurs uniques
setDuplicateValuesDéfinit une règle de mise en forme conditionnelle pour les valeurs en double
setRankDéfinit une règle de mise en forme conditionnelle basée sur le classement
setIconSetDéfinit une règle de mise en forme conditionnelle avec un jeu d’icônes
setColorScaleDéfinit une règle de mise en forme conditionnelle avec une échelle de couleurs
setDataBarDéfinit une règle de mise en forme conditionnelle avec une barre de données
setBackgroundDéfinit la couleur d’arrière-plan de la mise en forme conditionnelle
setBoldIndique si la police de la mise en forme conditionnelle est en gras
setFontColorDéfinit la couleur de police de la mise en forme conditionnelle
setItalicIndique si la police de la mise en forme conditionnelle est en italique
setStrikethroughIndique si la police de la mise en forme conditionnelle est barrée
setUnderlineIndique si la police de la mise en forme conditionnelle est soulignée
whenCellEmptyDéclenche la règle de mise en forme conditionnelle lorsque la cellule est vide
whenCellNotEmptyDéclenche la règle de mise en forme conditionnelle lorsque la cellule n’est pas vide
whenDateDéclenche la règle de mise en forme conditionnelle lorsque la date appartient à une période donnée
whenFormulaSatisfiedDéclenche la règle de mise en forme conditionnelle lorsque le résultat de la formule est vrai
whenNumberBetweenDéclenche la règle de mise en forme conditionnelle lorsque le nombre est compris entre deux valeurs données ou égal à l’une d’elles
whenNumberEqualToDéclenche la règle de mise en forme conditionnelle lorsque le nombre est égal à la valeur donnée
whenNumberGreaterThanDéclenche la règle de mise en forme conditionnelle lorsque le nombre est supérieur à la valeur donnée
whenNumberGreaterThanOrEqualToDéclenche la règle de mise en forme conditionnelle lorsque le nombre est supérieur ou égal à la valeur donnée
whenNumberLessThanDéclenche la règle de mise en forme conditionnelle lorsque le nombre est inférieur à la valeur donnée
whenNumberLessThanOrEqualToDéclenche la règle de mise en forme conditionnelle lorsque le nombre est inférieur ou égal à la valeur donnée
whenNumberNotBetweenDéclenche la règle de mise en forme conditionnelle lorsque le nombre n’est pas compris entre deux valeurs données et n’est égal à aucune d’elles
whenNumberNotEqualToDéclenche la règle de mise en forme conditionnelle lorsque le nombre est différent de la valeur donnée
whenTextContainsDéclenche la règle de mise en forme conditionnelle lorsque le texte contient la valeur indiquée
whenTextDoesNotContainDéclenche la règle de mise en forme conditionnelle lorsque le texte ne contient pas la valeur indiquée
whenTextEndsWithDéclenche la règle de mise en forme conditionnelle lorsque le texte se termine par la valeur indiquée
whenTextEqualToDéclenche la règle de mise en forme conditionnelle lorsque le texte est égal à la valeur donnée
whenTextStartsWithDéclenche la règle de mise en forme conditionnelle lorsque le texte commence par la valeur indiquée
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)

Obtenir les règles de mise en forme conditionnelle

  • FWorksheet.getConditionalFormattingRules() obtient toutes les règles de mise en forme conditionnelle de la feuille de calcul
  • FRange.getConditionalFormattingRules() obtient toutes les règles de mise en forme conditionnelle de la plage
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()

Supprimer des règles de mise en forme conditionnelle

FWorksheet.deleteConditionalFormattingRule(cfId) supprime une règle de mise en forme conditionnelle de la feuille de calcul, où cfId est l’identifiant de cette règle.

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

Mettre à jour des règles de mise en forme conditionnelle

FWorksheet.setConditionalFormattingRule(cfId, rule) met à jour une règle de mise en forme conditionnelle dans la feuille de calcul, où cfId est l’identifiant de la règle et rule la nouvelle règle.

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()] })

Modifier la priorité des règles de mise en forme conditionnelle

FWorksheet.moveConditionalFormattingRule(cfId, toCfId, type) modifie la priorité d’une règle de mise en forme conditionnelle dans la feuille de calcul, où cfId est l’identifiant de la règle, toCfId celui de la règle cible et type le type de déplacement (par exemple, 'before' ou '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')

Effacer toutes les règles de mise en forme conditionnelle

  • FWorksheet.clearConditionalFormatRules() efface toutes les règles de mise en forme conditionnelle de la feuille de calcul.
  • FRange.clearConditionalFormatRules() efface toutes les règles de mise en forme conditionnelle de la plage.
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()

Réutiliser les descriptions et aperçus de règles

Pour une liste personnalisée, importez getRuleDescribe et ConditionalFormattingRulePreview depuis @univerjs/sheets-conditional-formatting-ui. Passez la règle entière à getRuleDescribe(rule, localeService) et seulement sa configuration (rule.rule) à l’aperçu. Celui-ci montre l’apparence configurée sans évaluer les cellules. Rendez-le dans le contexte React d’Univer.

CF_PANEL_KEY identifie le panneau intégré pour la substitution de composants. Le callback IConditionFormattingPanelProps.onEditorExit est appelé à la fin de l’édition après validation, annulation, activation ou suppression d’une feuille. Il n’indique ni un enregistrement réussi ni la fermeture de la barre latérale.

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>  )}

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.