React Spreadsheet の条件付き書式設定

    React Spreadsheet コンポーネントは、ワークシートのセルに条件付き書式を設定できます。これにより、条件に基づいてデータのさまざまな部分をハイライト表示できます。

    React Spreadsheet の条件付き書式設定の例

    条件付き書式設定の概要

    特定のワークシートの条件付き書式を構成するには、ワークシートの conditionalFormats コレクションに公開される Add メソッドを使用できます。この Add メソッドの最初のパラメーターは条件付き書式に適用するワークシートの string 領域です。

    ワークシートに追加できる条件付き書式の多くには、その条件付き書式の条件が満たされたときにセルを表示する方法を決定する cellFormat プロパティがあります。たとえば、fill および font などのこの cellFormat プロパティにアタッチされるプロパティを使用してセルの背景およびフォント設定を決定できます。

    条件付き書式が作成され、cellFormat が適用される場合、ワークシートのセルにサポートされるプロパティのサブセットがあります。現在サポートされる cellFormat プロパティは fillBorder プロパティ、formatString、および strikethrough、underline、italic、bold、color などの font プロパティです。以下のコード スニペットに複数のプロパティが設定されます。

    ワーク セルの可視化の動作が異なるため、cellFormat プロパティがない条件付き書式もあります。この条件付き書式は DataBarConditionalFormatColorScaleConditionalFormatIconSetConditionalFormat です。

    既存の Workbook を Excel から読み込む際に、ワークブックが読み込まれた場合も書式設定は保持されます。ワークブックを Excel ファイルに保存する場合も保持されます。

    以下は、React IgrSpreadsheet コントロールでサポートされている条件付き書式の一覧です。

    • AverageConditionalFormat: addAverageCondition メソッドを使用して追加されたこの条件付きフォーマットは、セルの値が関連する範囲の平均または標準偏差より上か下かに基づいて、ワークシートセルの視覚属性を制御するプロパティを公開します。
    • BlanksConditionalFormat: addBlanksCondition メソッドを使用して追加されたこの条件付き書式では、セルの値が設定されていないかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • ColorScaleConditionalFormat: addColorScaleCondition メソッドを使用して追加された条件付き書式は、最小値、中央値、最大値に対するセルの値に基づいてワークシート セルの色を制御するプロパティを公開します。
    • DataBarConditionalFormat: addDataBarCondition メソッドを使用して追加されたこの条件付き書式は、関連付けられた値の範囲に対するセルの値に基づいてワークシートのセルにデータバーを表示するプロパティを公開します。
    • DateTimeConditionalFormat: addDateTimeCondition メソッドを使用して追加されたこの条件付き書式は、セルの日付値が指定された時間範囲内にあるかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • DuplicateConditionalFormat: addDuplicateCondition メソッドを使用して追加されたこの条件付き書式は、セルの値が一意であるか、関連付けられた範囲全体で複製されるかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • ErrorsConditionalFormat: addErrorsCondition メソッドを使用して追加されたこの条件付き書式では、セルの値が設定されていないかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • FormulaConditionalFormat: addFormulaCondition メソッドを使用して追加されたこの条件付き書式は、セルの値が式で定義された基準を満たすかどうかに基づいてワークシート セルの表示属性を制御するプロパティを公開します。
    • IconSetConditionalFormat: addIconSetCondition メソッドを使用して追加されたこの条件付き書式は、しきい値に対するセルの値に基づいてワークシートのセルにアイコンを表示するプロパティを公開します。
    • NoBlanksConditionalFormat: addNoBlanksCondition メソッドを使用して追加されたこの条件付き書式では、セルの値が設定されていないかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • NoErrorsConditionalFormat: addNoErrorsCondition メソッドを使用して追加されたこの条件付き書式では、セルの値が設定されていないかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。
    • OperatorConditionalFormat: addOperatorCondition メソッドを使用して追加されたこの条件付き書式は、セルの値が論理演算子で定義された基準を満たすかどうかに基づいてワークシートセルの視覚属性を制御するプロパティを公開します。
    • RankConditionalFormat: addRankCondition メソッドを使用して追加されたこの条件付き書式は、セルの値が関連する範囲全体の値の最下位ランクの上部にあるかどうかに基づいてワークシート セルの表示属性を制御するプロパティを公開します。
    • TextOperatorConditionalFormat: addRankCondition メソッドを使用して追加されたこの条件付き書式は、セルのテキスト値が addTextCondition メソッドのパラメーターの文字列および FormatConditionTextOperator 値にで定義された基準を満たすかどうかに基づいてワークシート セルのビジュアル属性を制御するプロパティを公開します。
    • UniqueConditionalFormat: addUniqueCondition メソッドを使用して追加されたこの条件付き書式は、セルの値が関連付けられた範囲全体で一意であるかどうかに基づいてワークシートセルの表示属性を制御するプロパティを公開します。

    依存関係

    IgrSpreadsheet コントロールに条件付き書式を追加するには、以下の依存関係をインポートする必要があります。

    import { CellFill } from "igniteui-react-excel";
    import { Color } from 'igniteui-react-core';
    import { ColorScaleType } from "igniteui-react-excelScaleType";
    import { FormatConditionAboveBelow } from 'igniteui-react-excel';
    import { FormatConditionIconSet } from 'igniteui-react-excel';
    import { FormatConditionOperator } from 'igniteui-react-excel';
    import { FormatConditionTextOperator } from 'igniteui-react-excel';
    import { FormatConditionTimePeriod } from 'igniteui-react-excel';
    import { FormatConditionTopBottom } from "igniteui-react-excel";
    import { WorkbookColorInfo } from 'igniteui-react-excel';
    

    コード スニペット

    以下のコード スニペットは、IgrSpreadsheet コントロールのスプレッドシートに各条件付き書式を追加する方法を示しています。

    let sheet = this.spreadsheet.activeWorksheet;
    
    let red = new Color();
    red.colorString = "#ff0000";
    
    let blue = new Color();
    blue.colorString = "#0000ff";
    
    let green = new Color();
    green.colorString = "#00ff00";
    
    let gray = new Color();
    gray.colorString = "#d3d3d3";
    
    let avgFormat = sheet.conditionalFormats().addAverageCondition("A1:A10", FormatConditionAboveBelow.AboveAverage);
    avgFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(red);
    
    let blanksFormat = sheet.conditionalFormats().addBlanksCondition("B1:B10");
    blanksFormat.cellFormat.fill = CellFill.createSolidFill(new WorkbookColorInfo(gray));
    
    let colorFormat = sheet.conditionalFormats().addColorScaleCondition("C1:C10", ColorScaleType.ThreeColor);
    colorFormat.minimumThreshold.formatColor = new WorkbookColorInfo(red);
    colorFormat.midpointThreshold.formatColor = new WorkbookColorInfo(blue);
    colorFormat.maximumThreshold.formatColor = new WorkbookColorInfo(green);
    
    let dataBarFormat = sheet.conditionalFormats().addDataBarCondition("D1:D10");
    
    let dateTimeFormat = sheet.conditionalFormats().addDateTimeCondition("E1:E10", FormatConditionTimePeriod.NextWeek);
    dateTimeFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(red);
    
    let duplicateFormat = sheet.conditionalFormats().addDuplicateCondition("F1:F10");
    duplicateFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(blue);
    
    let errorFormat = sheet.conditionalFormats().addErrorsCondition("G1:G10");
    errorFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(green);
    
    let formulaFormat = sheet.conditionalFormats().addFormulaCondition("H1:H10", "=H1>2");
    formulaFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(red);
    
    let iconFormat = sheet.conditionalFormats().addIconSetCondition("I1:I10", FormatConditionIconSet.IconSet3TrafficLights1);
    
    let noBlanksFormat = sheet.conditionalFormats().addNoBlanksCondition("J1:J10");
    noBlanksFormat.cellFormat.fill = CellFill.createSolidFill(new WorkbookColorInfo(gray));
    
    let noErrorFormat = sheet.conditionalFormats().addErrorsCondition("K1:K10");
    noErrorFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(red);
    
    let operatorFormat = sheet.conditionalFormats().addOperatorCondition("L1:L10", FormatConditionOperator.Greater);
    operatorFormat.setOperand1(500);
    operatorFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(blue);
    
    let rankFormat = sheet.conditionalFormats().addRankCondition("M1:M10", FormatConditionTopBottom.Top, 5);
    rankFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(green);
    
    let textFormat = sheet.conditionalFormats().addTextCondition("N1:N10", "A", FormatConditionTextOperator.Contains);
    textFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(red);
    
    let uniqueFormat = sheet.conditionalFormats().addUniqueCondition("O1:O10");
    uniqueFormat.cellFormat.font.colorInfo = new WorkbookColorInfo(blue);
    

    API リファレンス