SPREAD for WPF 3.0J - GcSpreadSheet
フィルタ
SPREAD for WPF 3.0J - GcSpreadSheet > 開発者ガイド > フィルタ

GcSpreadSheetは、テキスト、日付、セル色、フォント色、条件付き書式などデータに対してフィルタを適用できます。

本機能は、ワークシート内の関連データのみを(指定されたフィルター条件に基づいて)表示し、不要なデータを非表示にします。複数のフィルタも適用でき、データ全体を表示する際、フィルタを解除することもできます。

列フィルタ

大きなワークシートでデータを処理する場合、列にフィルタを適用することでデータを絞り込むことができます。列フィルタリングを使用すると、ユーザーが条件を指定して、ワークシートに関連する行のみを表示でき、条件に合わないデータを非表示にすることができます。フィルタを削除して非表示のデータを再表示することも可能です。

ワークシートに列フィルタを適用するには、IRangeインタフェースのAutoFilterメソッドを使用する必要があります。DynamicFilterType列挙体をAboveAverage、BelowAverage、LastQuarter、LastMonth、NextWeekなどの値に設定することで、フィルタ条件を指定できます

データをセル値だけではなく、AutoFilter.FilterDataEntry構造体のFontColorフィールド、ColorManagerフィールドおよびFormatterフィールドを使用することで、フォント色、セル色、条件付き書式設定に基づいてもフィルタできます。

コードのコピー
// 列フィルタリング。   
GcSpreadSheet.Workbook.Worksheets[0].Range("A1").Value = 17;
GcSpreadSheet.Workbook.Worksheets[0].Range("A2").Value = 12;
GcSpreadSheet.Workbook.Worksheets[0].Range("A3").Value = 23;
GcSpreadSheet.Workbook.Worksheets[0].Range("A4").Value = 230;
GcSpreadSheet.Workbook.Worksheets[0].Range("A5").Value = 234;
GcSpreadSheet.Workbook.Worksheets[0].Range("A6").Value = 11;
GcSpreadSheet.Workbook.Worksheets[0].Range("A7").Value = 3;
GcSpreadSheet.Workbook.Worksheets[0].Range("A8").Value = 123;
GcSpreadSheet.Workbook.Worksheets[0].Range("A9").Value = 579;
GcSpreadSheet.Workbook.Worksheets[0].Range("A12").Value = 12;
GcSpreadSheet.Workbook.Worksheets[0].Range("A13").Value = 23;
GcSpreadSheet.Workbook.Worksheets[0].Range("A14").Value = 230;
GcSpreadSheet.Workbook.Worksheets[0].Range("A15").Value = 234;
GcSpreadSheet.Workbook.Worksheets[0].Range("A16").Value = 11;
GcSpreadSheet.Workbook.Worksheets[0].Range("A17").Value = 3;
GcSpreadSheet.Workbook.Worksheets[0].Range("A18").Value = 123;
GcSpreadSheet.Workbook.Worksheets[0].Range("A19").Value = 579;
GcSpreadSheet.Workbook.Worksheets[0].Name = " ColumnFiltering";

// DynamicFilterTypeを使用してBelowAverageの値のみを表示するための列Aのフィルタリング。
GcSpreadSheet.Workbook.Worksheets[0].Columns[0].AutoFilter(true);
GcSpreadSheet.Workbook.Worksheets[0].Columns[0].AutoFilter(0, DynamicFilterType.BelowAverage);
コードのコピー
 '列フィルタリング。   
 GcSpreadSheet.Workbook.Worksheets(0).Range("A1").Value = 17
 GcSpreadSheet.Workbook.Worksheets(0).Range("A2").Value = 12
 GcSpreadSheet.Workbook.Worksheets(0).Range("A3").Value = 23
 GcSpreadSheet.Workbook.Worksheets(0).Range("A4").Value = 230
 GcSpreadSheet.Workbook.Worksheets(0).Range("A5").Value = 234
 GcSpreadSheet.Workbook.Worksheets(0).Range("A6").Value = 11
 GcSpreadSheet.Workbook.Worksheets(0).Range("A7").Value = 3
 GcSpreadSheet.Workbook.Worksheets(0).Range("A8").Value = 123
 GcSpreadSheet.Workbook.Worksheets(0).Range("A9").Value = 579
 GcSpreadSheet.Workbook.Worksheets(0).Range("A12").Value = 12
 GcSpreadSheet.Workbook.Worksheets(0).Range("A13").Value = 23
 GcSpreadSheet.Workbook.Worksheets(0).Range("A14").Value = 230
 GcSpreadSheet.Workbook.Worksheets(0).Range("A15").Value = 234
 GcSpreadSheet.Workbook.Worksheets(0).Range("A16").Value = 11
 GcSpreadSheet.Workbook.Worksheets(0).Range("A17").Value = 3
 GcSpreadSheet.Workbook.Worksheets(0).Range("A18").Value = 123
 GcSpreadSheet.Workbook.Worksheets(0).Range("A19").Value = 579
 GcSpreadSheet.Workbook.Worksheets(0).Name = " ColumnFiltering"

 'DynamicFilterTypeを使用してBelowAverageの値のみを表示するための列Aのフィルタリング。

GcSpreadSheet.Workbook.Worksheets(0).Columns(0).AutoFilter(true)
GcSpreadSheet.Workbook.Worksheets(0).Columns(0).AutoFilter(0, DynamicFilterType.BelowAverage)

範囲フィルタ

列のデータ全体にフィルタを適用しないで、特定の範囲のみをフィルタ対象とするには、範囲フィルタを使用できます。

ワークシートに範囲フィルタを適用するには、フィルタ対象の範囲を指定し、フィルタした範囲を取得するにはIRangeインタフェースのAutoFilterメソッドを使用する必要があります。

コードのコピー
// 範囲フィルタリング。
GcSpreadSheet.Workbook.Worksheets[1].Range("B2").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("B3").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("B4").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("B5").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("B6").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("B7").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("B8").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("B9").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("C2").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("C3").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("C4").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("C5").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("C6").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("C7").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("C8").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("C9").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("D2").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("D3").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("D4").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("D5").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("D6").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Range("D7").Value = "Orange";
GcSpreadSheet.Workbook.Worksheets[1].Range("D8").Value = "Apple";
GcSpreadSheet.Workbook.Worksheets[1].Range("D9").Value = "Banana";
GcSpreadSheet.Workbook.Worksheets[1].Name = " RangeFiltering";

// 次のコードは、列C(1はフィルターの左列Bから2番目の列)を「Banana」でフィルタします。
GcSpreadSheet.Workbook.Worksheets[1].Range("B1:D10").AutoFilter(1, "Banana");
コードのコピー
'範囲フィルタリング。
 GcSpreadSheet.Workbook.Worksheets(1).Range("B2").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B3").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B4").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B5").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B6").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B7").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B8").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("B9").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C2").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C3").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C4").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C5").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C6").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C7").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C8").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("C9").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D2").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D3").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D4").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D5").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D6").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D7").Value = "Orange"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D8").Value = "Apple"
 GcSpreadSheet.Workbook.Worksheets(1).Range("D9").Value = "Banana"
 GcSpreadSheet.Workbook.Worksheets(1).Name = " RangeFiltering"

'次のコードは、列C(1はフィルターの左列Bから2番目の列)を「Banana」でフィルタします。
GcSpreadSheet.Workbook.Worksheets(1).Range("B1:D10").AutoFilter(1, "Banana");