SPREAD for WPF 3.0J - GcSpreadSheet
テーブル
SPREAD for WPF 3.0J - GcSpreadSheet > 開発者ガイド > テーブル

GcSpreadSheetでは、セル範囲を指定してテーブルを作成でき、関連あるデータを一つの集まりとして管理および分析できます。テーブルの列および行に含まれるデータを、シートの他の列および行のデータと独立して管理できます。

テーブルの作成

GcSpreadSheetでは、IRangeインタフェースのCreateTableメソッドを使用してテーブルを作成します。IRangeインタフェースのTextValueプロパティを使用してテーブルセルにテキストを追加します。

 

次のサンプルコードでは、CreateTableメソッドを使用してテーブルを作成しています。

コードのコピー
// データを追加します。
GcSpreadSheet.Workbook.Worksheets[0].Cells[1, 1].Text = "名前";
GcSpreadSheet.Workbook.Worksheets[0].Cells[1, 2].Text = "値";
GcSpreadSheet.Workbook.Worksheets[0].Cells[2, 1].Text = "青木";
GcSpreadSheet.Workbook.Worksheets[0].Cells[2, 2].Value = 50;
GcSpreadSheet.Workbook.Worksheets[0].Cells[3, 1].Text = "明美";
GcSpreadSheet.Workbook.Worksheets[0].Cells[3, 2].Value = 10;
GcSpreadSheet.Workbook.Worksheets[0].Cells[4, 1].Text = "春樹";
GcSpreadSheet.Workbook.Worksheets[0].Cells[4, 2].Value = 78;
GcSpreadSheet.Workbook.Worksheets[0].Cells[5, 1].Text = "山本";
GcSpreadSheet.Workbook.Worksheets[0].Cells[5, 2].Value = 53;

// テーブルを作成します。
GcSpreadSheet.Workbook.Worksheets[0].Cells["B2:C6"].CreateTable(true, "CustomerTable", null); 
ITable table = GcSpreadSheet.Workbook.Worksheets[0].Tables["CustomerTable"];
コードのコピー
' データを追加します。
GcSpreadSheet.Workbook.Worksheets(0).Cells(1, 1).Text = "名前"
GcSpreadSheet.Workbook.Worksheets(0).Cells(1, 2).Text = "値"
GcSpreadSheet.Workbook.Worksheets(0).Cells(2, 1).Text = "青木"
GcSpreadSheet.Workbook.Worksheets(0).Cells(2, 2).Value = 50
GcSpreadSheet.Workbook.Worksheets(0).Cells(3, 1).Text = "明美"
GcSpreadSheet.Workbook.Worksheets(0).Cells(3, 2).Value = 10
GcSpreadSheet.Workbook.Worksheets(0).Cells(4, 1).Text = "春樹"
GcSpreadSheet.Workbook.Worksheets(0).Cells(4, 2).Value = 78
GcSpreadSheet.Workbook.Worksheets(0).Cells(5, 1).Text = "山本"
GcSpreadSheet.Workbook.Worksheets(0).Cells(5, 2).Value = 53

' テーブルを作成します。
GcSpreadSheet.Workbook.Worksheets(0).Cells("B2:C6").CreateTable(True, "CustomerTable", Nothing)
Dim table As ITable = GcSpreadSheet.Workbook.Worksheets(0).Tables("CustomerTable")

列の挿入や削除

GcSpreadSheetでは、ITableColumnsインタフェースのAddメソッドを使用して列を挿入できます。また、ITableColumnインタフェースのDeleteメソッドを使用することによって必要のない列を削除することも可能です。

次のサンプルコードは、列を挿入する方法と削除する方法を示します。

コードのコピー
// 最初列の前に列を挿入します。
table.TableColumns.Add(0);

// 2番目の列を削除します。
table.TableColumns[1].Delete();
コードのコピー
' 最初列の前に列を挿入します。
table.TableColumns.Add(0)

' 2番目の列を削除します。
table.TableColumns(1).Delete()

行の挿入や削除

GcSpreadSheetでは、ITableRowsインタフェースのAddメソッドを使用して行を挿入できます。また、ITableRowインタフェースのDeleteメソッドを使用することによって必要のない行を削除することも可能です。

次のサンプルコードは、行を挿入する方法と削除する方法を示します。

コードのコピー
// 2番目の行の前に行を挿入します。
table.TableRows.Add(1);

// 2番目の行を削除します。
table.TableRows[2].Delete();
コードのコピー
' 2番目の行の前に行を挿入します。
table.TableRows.Add(1)

' 2番目の行を削除します。
table.TableRows(2).Delete()

テーブルのリサイズ

行列の数を変更することでテーブルをリサイズすることができます。コードでリサイズする方法や、テーブルの右下にあるリサイズインジケータをドラッグすることでもテーブルのサイズを変更できます。インジケータを右方向にドラッグすると列、下方向にドラッグすると行が追加されます。

次のサンプルコードは、ITableインタフェースのResizeメソッドを使用してテーブルをリサイズする方法を示します。

コードのコピー
// テーブルをリサイズします。
table.Resize(1, 3, -1);
コードのコピー
' テーブルをリサイズします。
table.Resize(1, 3, -1)

テーブルデータのフィルタリング

テーブルでの値に基づいて、テーブルデータを数値、テキスト、日付、または色を対象としてフィルタできます。コードを使用する方法や、見出し行のドロップダウンアイコンをクリックしてフィルタを適用する方法もあります。次の図は、テキストフィルタを表示するメニューです。

 

次のサンプルコードは、テーブルデータをフィルタする方法を示します。

コードのコピー
// テーブルにフィルタを適用します。
table.Range.AutoFilter(1, ">50", AutoFilterOperator.And);

// セル値を変更して、フィルタを再適用する際、ApplyFilterを使用します。
GcSpreadSheet.Workbook.Worksheets[0].Cells[5, 2].Value = 67;
table.AutoFilter.ApplyFilter();
コードのコピー
' テーブルにフィルタを適用します。
table.Range.AutoFilter(1, ">50", AutoFilterOperator.[And])

' セル値を変更して、フィルタを再適用する際、ApplyFilterを使用します。
GcSpreadSheet.Workbook.Worksheets(0).Cells(5, 2).Value = 67
table.AutoFilter.ApplyFilter()

テーブルデータの並べ替え

テーブルでのデータが列内の値に基づいて昇順や降順で並べ替えられます。並べ替えが1つ以上の列でも可能です。コードで並べ替え基準を指定することや、列ヘッダのドロップダウンアイコンをクリックして並べ替えに関するオプションを選択します。

次のサンプルコードは、テーブルの「名前」列を並べ替える方法を示します。

コードのコピー
// テーブルデータを並べ替えます。
table.Sort.SortFields.Add(0, SortOn.Value, SortOrder.Ascending);
table.Sort.Apply();
コードのコピー
' テーブルデータを並べ替えます。
table.Sort.SortFields.Add(0, SortOn.Value, SortOrder.Ascending)
table.Sort.Apply()

テーブルに数式の追加

ユーザーが、実行時に、ドロップダウンを使用してテーブル上の集計行に数式を追加することができます。テーブルに集計行を追加するには、ITableインタフェースのShowTotalsメソッドを使用します。デフォルトで集計行は列値の合計を計算します。

ただし、ユーザーが、テーブルの右下にあるドロップダウン矢印を使用して個数、平均、最大値、最小値など集計数式を適用することもできます。

 

次のサンプルコードは、集計行に平均を計算する数式を設定する方法を示します。

コードのコピー
// テーブルに集計行を表示する。集計行にテーブルの数式を表示するドロップダウンがあります。
table.ShowTotals = true;
table.TableColumns[1].TotalsCalculation = TotalsCalculation.Average;
コードのコピー
' テーブルに集計行を表示する。集計行にテーブルの数式を表示するドロップダウンがあります。
table.ShowTotals = True
table.TableColumns(1).TotalsCalculation = TotalsCalculation.Average

テーブルの行と列の移動

ITableColumnsまたはITableRowsMoveメソッドを使用して、テーブルの行、テーブルの列、またはテーブル全体を移動できます。

 

次のサンプルコードは、テーブルの行とテーブルの列をワークシートの新しい位置に移動します。

コードのコピー
// テーブル列を移動します。
table.TableColumns.Move(0, 2, 1);

// テーブル行を移動します。
table.TableRows.Move(1, 3, 1);
コードのコピー
' テーブル列を移動します。
table.TableColumns.Move(0, 2, 1)

' テーブル行を移動します。
table.TableRows.Move(1, 3, 1)

実行時に行と列の選択

実行時に、ワークシートのテーブルの行、テーブルの列、また、テーブル全体を選択できます。

以下に示すように、列ヘッダの上端をクリックしてテーブルの列を選択し、行ヘッダの左端をクリックしてテーブルの行を選択できます。テーブルの左上隅をクリックして、テーブル全体を選択することもできます。テーブルの左上隅を一回クリックすると、テーブルの行と列のみが選択されますが、ダブルクリックすると、テーブルヘッダも選択されます。

 

関連トピック