SpreadJS製品ヘルプ
行のフィルタリング
機能 > 行列 > 行のフィルタリング

SpreadJSでは、セルのデータ型に応じた条件付きフィルター(数値フィルター、テキストフィルター、日付フィルター、カラーフィルター、カスタムオート)を適用することができます。ワークシートでフィルター操作が行われると、フィルター条件に合致する行が表示され、それ以外の行は非表示になります。

フィルタリングが可能な列には、列ヘッダー内にフィルタリングボタンが表示されます。ユーザーはこのボタンをクリックし、フィルターダイアログで利用可能なオプションを使用することができます。

Filter Dialog

フィルタダイアログは、アイテムでフィルタリングしたり、アイテムのリストを並べ替えたり、フィルタリングされた行を非表示にしたり、列に適用されたフィルタ条件をクリアしたりするのに役立ちます。

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の場合と同様に、フィルタ項目は特定の順序(日付、数値、テキスト、論理、空白)に従います。

フィルタ範囲にアウトライン列が含まれている場合、階層はフィルターダイアログリストボックスのアウトライン列データと同じになり、フィルタ項目のチェックボックスは、チェック、チェック解除、および不確定の方法でツリーのステータスをサポートします(子のステータスは同じではありません)。詳しくはアウトライン列を参照してください。

日付ツリー表示では、以下で説明するように、階層が異なればフォーマット方針も異なります。

  1. 日付ツリーの表示形式は、最初の日付タイプのセル形式に基づいています。ユーザーがフォーマットを設定しない場合は、自動日付フォーマットが適用されます。
  2. カルチャがENであり、日付フォーマット文字列にロケールIDが含まれていない場合、日付ツリービューの形式は次のように表示されます。年パターン:YYYY、月パターン:MM、日パターン:DD

日付タイプ値フィルターは、次のシナリオで詳しく説明されているように、データセットに従って表示されます

シナリオ
フィルタ範囲のすべての値が異なる年にある場合、どのレベルも展開されません。
フィルタ範囲のすべての値が同じ年にある場合、年レベルが展開されます。
フィルタ範囲のすべての値が同じ年と同じ月にある場合、年レベルと月レベルが展開されます。

色でフィルタリング

次の2つのモードに基づいて、フィルター列にカラーフィルターを適用することもできます。

カラーフィルターメニューは、フィルターの対象となる範囲のセルの背景色や文字色が2種類以上ある場合に有効になります。 

 

 

またフィルター操作についても参照してください。

関連トピック