バージョン

テーブルの並べ替え (Infragistics Excel Engine)

トピックの概要

目的

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

概要

テーブルの列で並べ替えの条件を設定することによって並べ替えが実行されます。並べ替え条件が列で設定されると、テーブルのすべての並べ替え条件は、テーブルのセルの順番を決定するために再評価されます。並べ替えの基準を満たすためにセルを移動させる必要があるとき、テーブルのセルの行全体が 1 つの単位として移動されます。テーブルのデータがそれ以降変更される場合、並べ替え条件は再評価されません。

テーブルのフィルター条件は、並べ替え条件が追加、削除、変更される時に、または ReapplySortConditions メソッドがテーブルで呼び出されるときに限り再適用されます。

並べ替え条件が再評価されると、表示されたセルのみが並べ替えられます。非表示行のすべてのセルは適切に維持されます。

テーブルの列から並べ替え条件にアクセスすることに加えて、WorksheetTable.SortSettings SortCondition コレクションからも公開されます。これは、列/並べ替え条件のペアの順番に並べられたコレクションです。このコレクション内の順序は並べ替えの優先順位です。コレクションの最初の並べ替え条件が最初に適用され、その条件によって並べ替えられた列内のセルの値によってテーブル内のすべての行が並べ替えられます。その並べ替え内のセルのグループに同じ値がある場合、行は、次の並べ替え条件を持つサブグループとして並べ替えられます。

以下の並べ替え条件タイプを列で設定するために使用できます:

並べ替え条件タイプ 説明

値に基づいて昇順または降順にセルを並べ替えます。

テキストまたは表示値に基づいて定義された順序でセルを並べ替えます。これは、カレンダーに表示する、またはアルファベット順でなく自分が定義したカスタム リストに表示するときの並べ替えに役に立ちます。

塗りつぶしが特定のパターン/グラデーションであるかどうかに基づいてセルを並べ替えます。

フォントが特定の色であるかどうかに基づいてセルを並べ替えます。

文字列が大文字と小文字を区別して並べ替えられるかどうかを開発者が決定することを可能にする WorksheetTable.SortSettings CaseSensitive プロパティもあります。

コード例の概要

概要

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

説明

順番に並べられた並べ替え条件

このコード例は、値に基づいて昇順または降順にテーブルからセルを並べ替える方法を示します。

カスタム リスト並べ替え条件

このコード例は、値に基づいて定義された順番でセルを並べ替える方法を示します。

塗りつぶし並べ替え条件

このコード例は、背景色に基づいてセルを並べ替える方法を示します。

コード例: 順番に並べられた並べ替え条件

説明

このコード例は、値に基づいて昇順にテーブルからセルを並べ替える方法を示します。

このコードは、ヘルパー クラス ExcelExampleTable を使用して名前が指定されたテーブルを取得します。その後で、順番に並べられた並べ替え条件が作成され、名前が指定されたテーブルの列に適用されます。最後に、並べ替えられたテーブルを持つワークブックが保存されます。

前提条件

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

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Create Sort Condition
Dim orderedSort As Infragistics.Documents.Excel.Sorting.SortCondition = New Infragistics.Documents.Excel.Sorting.OrderedSortCondition(Infragistics.Documents.Excel.Sorting.SortDirection.Ascending)
' Perform the sort
table.Columns("FirstName").SortCondition = orderedSort
' Save the workbook.
workbook.Save("C:\TableSorting-Sorted.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Create Sort Condition
Infragistics.Documents.Excel.Sorting.SortCondition orderedSort = new Infragistics.Documents.Excel.Sorting.OrderedSortCondition(
    Infragistics.Documents.Excel.Sorting.SortDirection.Ascending);
// Perform the sort
table.Columns["FirstName"].SortCondition = orderedSort;
// Save the workbook.
workbook.Save("C:\\TableSorting-Sorted.xlsx");

コード例: カスタム リスト並べ替え条件

説明

このコード例は、値に基づいて定義された順番でテーブルからセルを並べ替える方法を示します。

このコードは、ヘルパー クラス ExcelExampleTable を使用して名前が指定されたテーブルを取得します。その後で、カスタムの並べ替え条件が作成され、名前が指定されたテーブルの列に適用されます。最後に、並べ替えられたテーブルを持つワークブックが保存されます。

前提条件

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

プレビュー

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

Sorting Exported Tables 1.png

コード

Visual Basic の場合:

Dim workbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.
Dim table As Infragistics.Documents.Excel.WorksheetTable = workbook.GetTable("Patients")
' Create custom list sort condition
Dim customListSortCondition As New Infragistics.Documents.Excel.Sorting.CustomListSortCondition(Infragistics.Documents.Excel.Sorting.SortDirection.Ascending, New String() {"High", "Medium", "Low"})
' Perform the sort
table.Columns("Severity").SortCondition = customListSortCondition
workbook.Save("C:\TableSorting-Sorted.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook workbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.
Infragistics.Documents.Excel.WorksheetTable table = workbook.GetTable("Patients");
// Create custom list sort condition
Infragistics.Documents.Excel.Sorting.CustomListSortCondition customListSortCondition = new Infragistics.Documents.Excel.Sorting.CustomListSortCondition(
    Infragistics.Documents.Excel.Sorting.SortDirection.Ascending, new string[] { "High", "Medium", "Low" });
// Perform the sort
table.Columns["Severity"].SortCondition = customListSortCondition;
workbook.Save("C:\\TableSorting-Sorted.xlsx");

コード例: 塗りつぶしの並べ替え条件

説明

このコード例は、背景色に基づいてセルを並べ替える方法を示します。

このコードは、ヘルパー クラス ExcelExampleTable を使用して名前が指定されたテーブルを取得します。その後で、塗りつぶし並べ替え条件が作成され、名前が指定されたテーブルの列に適用されます。最後に、並べ替えられたテーブルを持つワークブックが保存されます。

前提条件

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

プレビュー

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

Sorting Exported Tables 2.png

コード

Visual Basic の場合:

Dim myWorkbook As Infragistics.Documents.Excel.Workbook = ExcelExampleTable.CreateExampleWorkbook()
' Get a table.Table is created in separate code snippet.
Dim table As Infragistics.Documents.Excel.WorksheetTable = myWorkbook.GetTable("Patients")
Dim lastRow As Integer = table.DataAreaRegion.LastRow
Dim rand As New Random()
' Set Red background for random cells from first column
Dim i As Integer = 1
While i < lastRow
    If rand.[Next](2) = 1 Then
        myWorkbook.Worksheets(0).Rows(i).Cells(0).CellFormat.Fill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(System.Drawing.Color.FromArgb(255, 255, 0, 0))
    End If
    i += 1
End While
' Create Background Color Sort Condition
Dim filterFill As Infragistics.Documents.Excel.CellFill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(System.Drawing.Color.FromArgb(255, 255, 0, 0))
Dim fillSortCondition As New Infragistics.Documents.Excel.Sorting.FillSortCondition(filterFill, Infragistics.Documents.Excel.Sorting.SortDirection.Ascending)
table.Columns(0).SortCondition = fillSortCondition
myWorkbook.Save("C:\TableSorting-Sorted.xlsx")

C# の場合:

Infragistics.Documents.Excel.Workbook myWorkbook = ExcelExampleTable.CreateExampleWorkbook();
// Get a table.Table is created in separate code snippet.
Infragistics.Documents.Excel.WorksheetTable table = myWorkbook.GetTable("Patients");
int lastRow = table.DataAreaRegion.LastRow;
Random rand = new Random();
// Set Red background for random cells from first column
for (int i = 1; i < lastRow; i++)
{
    if (rand.Next(2) == 1)
    {
        myWorkbook.Worksheets[0].Rows[i].Cells[0].CellFormat.Fill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(
        System.Drawing.Color.FromArgb(255, 255, 0, 0));
    }
}
// Create Background Color Sort Condition
Infragistics.Documents.Excel.CellFill filterFill = Infragistics.Documents.Excel.CellFill.CreateSolidFill(
    System.Drawing.Color.FromArgb(255, 255, 0, 0));
Infragistics.Documents.Excel.Sorting.FillSortCondition fillSortCondition = new Infragistics.Documents.Excel.Sorting.FillSortCondition(
   filterFill, Infragistics.Documents.Excel.Sorting.SortDirection.Ascending);
table.Columns[0].SortCondition = fillSortCondition;
myWorkbook.Save("C:\\TableSorting-Sorted.xlsx");

関連コンテンツ

トピック

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

トピック 目的

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

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