バージョン

テーブルのフィルタリング (Infragistics Excel Engine)

概要

フィルターはフィルターを適用することで実行されます。フィルターが列で適用されると、テーブルのすべてのフィルターは、表示される行を決定するために再評価されます。この操作は、すべてのセルがテーブルの列のフィルター基準を満たす行を示します。

テーブルのデータがそれ以降変更される、または行の Hidden プロパティをそれ以降変更する場合、フィルター条件は再評価されません。テーブルのフィルター条件は、テーブルの列フィルターが追加、削除、変更されるときに、または ReapplyFilters メソッドがテーブルで呼び出されるときに限り再適用されます。

以下のフィルター メソッドを列データ適用するために使用できます:

フィルター タイプ 説明

年の特定の月または四半期の日付を含むセルのみが表示されます。その他のすべてのセルは非表示になります。

列のすべてのセルの平均値の上か、それとも下かに基づいてセルをフィルターできます。

1 つ以上のカスタム条件に基づいてセルをフィルターできます。

特定の塗りつぶしを含むセルのみが表示されます。その他のすべてのセルは非表示になります。

特定のフォントの色を含むセルのみが表示されます。その他のすべてのセルは非表示になります。

特定の表示値のみに一致するまたは日付/時間の特定のグループ内に分類されるセルが表示されます。その他のすべてのセルは非表示になります。

フィルターが適用されたときに、次の日または前の四半期のように日付の相対的な時間の範囲内で発生するかどうかに基づいて、日付値を含むセルをフィルターできます。

このフィルターは以下のタイプのフィルターに許可します。

  • 上の N 値のみが表示される

  • 下の N 値のみが表示される

  • 値の上の N % のみが表示される

  • 値の下の N % のみが表示される

年の始まりとフィルターが適用される日付の間に発生する場合、日付値を含むセルをフィルターできます。

コード例の概要

概要

以下の表には、このトピックのコード例が示されています。

説明

平均フィルタリング

このコードは、列のすべてのセルの平均値の上か、それとも下かに基づいてセルをフィルターできる方法を示します。

カスタム フィルタリング

このコードは、1 つ以上の CustomFilterConditions に従ってセルをフィルターできる方法を示します。

日付期間フィルタリング

このコードは、特定の月または四半期の日付を含むセルをフィルターします。その他のすべてのセルは非表示になります。

塗りつぶしフィルタリング

このコードは特定の塗りつぶしを含むセルをフィルターします。その他のすべてのセルは非表示になります。

固定値フィルタリング

このコードは特定の表示値を持つセルをフィルターします。その他のすべてのセルは非表示になります。

相対日付範囲フィルタリング

このコード例は、フィルターが適用される日付の相対的な時間の範囲内に発生するかどうかに基づいて日付値をフィルターする方法を示します。

トップまたはボトム フィルタリング

このコードは、列の値のトップ 10% をフィルターする方法を示します。

年度累計フィルタリング

このコード例は、年の始まりとフィルターが適用される日付の間に発生する場合、日付値を含むセルをフィルターできます。

コード例: 平均フィルタリング

説明

このコードは、列のすべてのセルの平均値を上回るセルをフィルターする方法を示します。平均値より下回るフィルタリングは同じ方法で実行されます。

この例のコードはテーブルを含むワークブックを作成します。その後で、フィルターがテーブルの列で適用されます。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Apply average filter
table.Columns("YOB").ApplyAverageFilter(Infragistics.Documents.Excel.Filtering.AverageFilterType.AboveAverage)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Apply average filter
table.Columns["YOB"].ApplyAverageFilter(Infragistics.Documents.Excel.Filtering.AverageFilterType.AboveAverage);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: カスタム フィルタリング

説明

このコードは、CustomFilterCondition 条件に従って、セルをフィルターする方法を示します。

この例のコードはテーブルを含むワークブックを作成します。その後で、指定された ExcelComparisonOperator と一致する文字列で、CustomFilterCondition が作成されます。カスタム フィルターが適用され、最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Create custom filter condition
Dim matchWordCondition As New Infragistics.Documents.Excel.Filtering.CustomFilterCondition(Infragistics.Documents.Excel.Filtering.ExcelComparisonOperator.Equals, "High")
' Apply custom filter
table.Columns("Severity").ApplyCustomFilter(matchWordCondition)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Create custom filter condition
Infragistics.Documents.Excel.Filtering.CustomFilterCondition matchWordCondition = new Infragistics.Documents.Excel.Filtering.CustomFilterCondition(
    Infragistics.Documents.Excel.Filtering.ExcelComparisonOperator.Equals, "High");
// Apply custom filter
table.Columns["Severity"].ApplyCustomFilter(matchWordCondition);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: 日付期間フィルタリング

説明

このコードは、特定の月または四半期の日付を含むセルをフィルターします。

この例のコードはテーブルを含むワークブックを作成します。その後で、日付期間フィルタリングが日付を含むテーブルの列で適用されます。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

プレビュー

以下のスクリーンショットは最終結果のプレビューです。

Filtering Exported Tables 1.png

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Apply Date Period Filter
' If you choose DatePeriodFilterType.Month, second argument represents months from January, 1, to December, 12
' and can take values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
' If you choose DatePeriodFilterType.Quarter, second argument represents the four quaters of the year - Q1, Q2, Q3 and Q4,
' and can take values 1, 2, 3 and 4.
' Code below accepts all dates in August.
table.Columns("Acceptance Date").ApplyDatePeriodFilter(Infragistics.Documents.Excel.Filtering.DatePeriodFilterType.Month, 8)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Apply Date Period Filter
// If you choose DatePeriodFilterType.Month, second argument represents months from January, 1, to December, 12
// and can take values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
// If you choose DatePeriodFilterType.Quarter, second argument represents the four quaters of the year - Q1, Q2, Q3 and Q4,
// and can take values 1, 2, 3 and 4.
// Code below accept all dates in August.
table.Columns["Acceptance Date"].ApplyDatePeriodFilter(Infragistics.Documents.Excel.Filtering.DatePeriodFilterType.Month, 8);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: 塗りつぶしフィルタリング

説明

このコードは、特定の背景塗りつぶしを含むセルをフィルターする方法を示します。

この例のコードはテーブルを含むワークブックを作成します。その後で、一致に使用される CellFill が作成されます。塗りつぶしフィルターが適用され、最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

プレビュー

以下のスクリーンショットは最終結果のプレビューです。

Filtering Exported Tables 2.png

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
Dim lastRow As Integer = table.DataAreaRegion.LastRow
Dim rand As New System.Random()
' Set Red background for random cells from first column
Dim i As Integer = 1
While i < lastRow
    If rand.[Next](2) = 1 Then
        workbook.Worksheets(0).Rows(i).Cells(0).CellFormat.Fill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(New Infragistics.Documents.Excel.WorkbookColorInfo(Infragistics.Documents.Excel.WorkbookThemeColorType.Accent1))
    End If
    i += 1
End While
' Create cell fill argument
Dim cellFill As Infragistics.Documents.Excel.CellFill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(New Infragistics.Documents.Excel.WorkbookColorInfo(Infragistics.Documents.Excel.WorkbookThemeColorType.Accent1))
' Apply FillFilter
table.Columns("First Name").ApplyFillFilter(cellFill)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
int lastRow = table.DataAreaRegion.LastRow;
System.Random rand = new System.Random();
// Set Red background for random cells from first column
for (int i = 1; i < lastRow; i++)
{
    if (rand.Next(2) == 1)
    {
        workbook.Worksheets[0].Rows[i].Cells[0].CellFormat.Fill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(
        new Infragistics.Documents.Excel.WorkbookColorInfo(Infragistics.Documents.Excel.WorkbookThemeColorType.Accent1));
    }
}
// Create cell fill argument
Infragistics.Documents.Excel.CellFill cellFill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(
    new Infragistics.Documents.Excel.WorkbookColorInfo(Infragistics.Documents.Excel.WorkbookThemeColorType.Accent1));
// Apply FillFilter
table.Columns["First Name"].ApplyFillFilter(cellFill);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: 固定値フィルタリング

説明

このコードは特定の表示値を持つセルをフィルターします。

この例のコードはテーブルを含むワークブックを作成します。その後で、フィルタリングのためのすべての固定値を保持する文字列配列が作成され、固定値フィルタリングが適用されます。フィルターが適用される列からのセルには異なる文字列値があります。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Create a category array of values, to be used in filtering
Dim categories As String() = New String() {"High", "Medium"}
' Apply FixedValuesFilter
table.Columns("Severity").ApplyFixedValuesFilter(False, categories)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Create a category array of values, to be used in filtering
string[] categories = new string[] {"High", "Medium"};
// Apply FixedValuesFilter
table.Columns["Severity"].ApplyFixedValuesFilter(false, categories);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: 相対日付範囲フィルタリング

説明

このコード例は、日付の相対的な時間の範囲内に発生するかどうかに基づいて日付値をフィルターする方法を示します。

この例のコードはテーブルを含むワークブックを作成します。その後で、相対日付範囲フィルタリングが適用されます。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Apply RelativeDateRangeFilter
table.Columns("Acceptance Date").ApplyRelativeDateRangeFilter(Infragistics.Documents.Excel.Filtering.RelativeDateRangeOffset.Current, Infragistics.Documents.Excel.Filtering.RelativeDateRangeDuration.Month)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Apply RelativeDateRangeFilter
table.Columns["Acceptance Date"].ApplyRelativeDateRangeFilter(
    Infragistics.Documents.Excel.Filtering.RelativeDateRangeOffset.Current,
    Infragistics.Documents.Excel.Filtering.RelativeDateRangeDuration.Month);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: トップまたはボトム フィルタリング

説明

このコードは、列の値のトップ 10% をフィルターする方法を示します。

この例のコードはテーブルを含むワークブックを作成します。その後で、値のトップ 10% をフィルターするフィルターが適用されます。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
table.Columns("YOB").ApplyTopOrBottomFilter(Infragistics.Documents.Excel.Filtering.TopOrBottomFilterType.TopPercentage, 20)
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
table.Columns["YOB"].ApplyTopOrBottomFilter(Infragistics.Documents.Excel.Filtering.TopOrBottomFilterType.TopPercentage, 20);
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

コード例: 年度累計フィルタリング

説明

このコード例は、年の始まりとフィルターが適用される日付の間に発生する場合、日付値を含むセルをフィルターできます。

この例のコードはテーブルを含むワークブックを作成します。その後で、年度累計フィルタリングが適用されます。最後に、ワークブックは保存されるため、フィルターされたテーブルが表示できます。

前提条件

ワークブックをプログラムで作成するためのこのコード例で、 Patients という名前のテーブルが使用されます。

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
table.Columns("Acceptance Date").ApplyYearToDateFilter()
workbook.Save("C:\TableFiltering-Filtered.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
table.Columns["Acceptance Date"].ApplyYearToDateFilter();
workbook.Save("C:\\TableFiltering-Filtered.xlsx");

関連コンテンツ

トピック

以下のトピックでは、このトピックに関連する情報を提供しています。

トピック 目的

このトピックは、Infragistics Excel Engine でのテーブルのサポートを説明します。Microsoft Excel® のテーブルは列に配列された関連したデータを含むセルの名前が指定された四角形の領域です。

このトピックは、テーブルで列を並べ替える方法を説明します。テーブルの列は、並べ替え条件を WorksheetTableColumn.SortCondition プロパティに適用することで並べ替えることができます。

このトピックは、セルの値、書式文字列、列幅およびワークシートのオプションを前提として、Microsoft Excel® に表示されるテキストを決定する方法を説明します。WorksheetCell.GetText メソッドを使用してセル テキストを決定できます。

このセクションでは、Infragistics Excel Engine のオブジェクト モデルおよび機能の理解を深めるための情報を提供します。