SpreadJSでは、セルのデータ型に応じた条件付きフィルター(数値フィルター、テキストフィルター、日付フィルター、カラーフィルター、カスタムオート)を適用することができます。ワークシートでフィルター操作が行われると、フィルター条件に合致する行が表示され、それ以外の行は非表示になります。
フィルタリングが可能な列には、列ヘッダー内にフィルタリングボタンが表示されます。ユーザーはこのボタンをクリックし、フィルターダイアログで利用可能なオプションを使用することができます。
フィルタダイアログは、アイテムでフィルタリングしたり、アイテムのリストを並べ替えたり、フィルタリングされた行を非表示にしたり、列に適用されたフィルタ条件をクリアしたりするのに役立ちます。
rowFilter HideRowFilterクラスを使用すると、コード内でフィルタを作成することができます。次のコード例は、ワークシートにフィルタダイアログを追加し、範囲にフィルタを適用する方法を示しています。
JavaScript |
コードのコピー
|
---|---|
// ワークブックとワークシートを構成します。 var spread = new GC.Spread.Sheets.Workbook("ss"); var activeSheet = spread.getActiveSheet(); activeSheet.setValue(0, 0, "北"); activeSheet.setValue(1, 0, "南"); activeSheet.setValue(2, 0, "東"); activeSheet.setValue(3, 0, "南"); activeSheet.setValue(4, 0, "北"); activeSheet.setValue(5, 0, "北"); activeSheet.setValue(6, 0, "西"); activeSheet.setColumnWidth(0, 80); // 行フィルタを設定します。 activeSheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(0, 0, 7, 1))); // 列1を「北」でフィルタします。 var rowFilter = spread.getActiveSheet().rowFilter(); var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition( GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo, expected: "北" }); rowFilter.addFilterItem(0, condition); rowFilter.filter(0); |
ユーザーは、マウスやさまざまなキーボードキーを使って、フィルターダイアログを操作することができます。Escキーは、ダイアログをキャンセルするのに使用します。Tabキーは異なるセクションに移動するのに使用し、上下の矢印キーは項目のリスト内で移動するのに使用することができます。スペースバーでチェック状態を変更することができます。
filterDialogVisibleInfoメソッドを使用して、フィルターダイアログに表示される情報を制御できます。このメソッドは、行フィルターの表示情報を取得または設定するのに役立ちます
次のコードは、フィルターダイアログの「値で並べ替え」とリストフィルター領域を非表示にする方法です。
JavaScript |
コードのコピー
|
---|---|
// ワークブックとワークシートを構成します。 var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); var sheet = spread.getActiveSheet(); // 行フィルタを設定します。 sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(1, 1, 10, 3))); // フィルタオプションを非表示にします。 var filter = sheet.rowFilter(); filter.filterDialogVisibleInfo({ sortByValue: false, sortByColor: true, filterByColor: true, filterByValue: true, listFilterArea: false }) |
フィルタダイアログリストボックスは、階層ツリー表示をサポートしています。数値、テキスト、日付タイプのいずれであっても、セルの最大数を占めるデータ型アイテムが表示されます。フィルタデータにさまざまな種類の値の種類が含まれている場合、Excelの場合と同様に、フィルタ項目は特定の順序(日付、数値、テキスト、論理、空白)に従います。
フィルタ範囲にアウトライン列が含まれている場合、階層はフィルターダイアログリストボックスのアウトライン列データと同じになり、フィルタ項目のチェックボックスは、チェック、チェック解除、および不確定の方法でツリーのステータスをサポートします(子のステータスは同じではありません)。詳しくはアウトライン列を参照してください。
日付ツリー表示では、以下で説明するように、階層が異なればフォーマット方針も異なります。
日付タイプ値フィルターは、次のシナリオで詳しく説明されているように、データセットに従って表示されます
シナリオ | 例 |
---|---|
フィルタ範囲のすべての値が異なる年にある場合、どのレベルも展開されません。 | |
フィルタ範囲のすべての値が同じ年にある場合、年レベルが展開されます。 | |
フィルタ範囲のすべての値が同じ年と同じ月にある場合、年レベルと月レベルが展開されます。 |
次の2つのモードに基づいて、フィルター列にカラーフィルターを適用することもできます。
カラーフィルターメニューは、フィルターの対象となる範囲のセルの背景色や文字色が2種類以上ある場合に有効になります。
またフィルター操作についても参照してください。