SPREAD for WPF 3.0J - GcSpreadSheet
ヘッダ
SPREAD for WPF 3.0J - GcSpreadSheet > 開発者ガイド > ヘッダ

GcSpreadSheetでは、 ヘッダに対して以下のような操作を行うことができます。

ヘッダの非表示

デフォルトで列と行ヘッダが表示されます。IColumnHeaderおよびIRowHeaderインタフェースのVisibleプロパティをfalseに設定して列ヘッダと行ヘッダのそれぞれを非表示にすることができます。

コードのコピー
// ColumnHeaderを非表示します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Visible = false;
// RowHeaderを非表示します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Visible = false;
コードのコピー
'ColumnHeaderを非表示します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Visible = False
'RowHeaderを非表示します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Visible = False

複数ヘッダの追加

列ヘッダに複数行と行ヘッダに複数列を追加して複数の列ヘッダと行ヘッダを作成できます。ヘッダで任意の文字、数字、またはカスタムテキストを指定できます。ヘッダをクリックすると、デフォルトで、該当する行や列が選択されます。ヘッダの端に表示されるポインタをドラッグすることでその行や列のサイズを変更することも可能です。

次の画像は、3列を含む行ヘッダと3行を含む列ヘッダを示します。

以下のコードは、IColumnHeaderおよびIRowHeaderインタフェースのRowCountColumnCountプロパティを使用して複数ヘッダを作成する方法を示します。

コードのコピー
// 複数行の列ヘッダ
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.RowCount = 3;
// 複数列の行ヘッダ
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.ColumnCount = 3;
コードのコピー
'複数行の列ヘッダ
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.RowCount = 3
'複数列の行ヘッダ
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.ColumnCount = 3

ヘッダの結合

行ヘッダと列ヘッダのセルを結合して、複数の行と列にまたがるセルを作成することができます。IRangeインタフェースのTextプロパティを使用することでヘッダセルにラベルを追加できます。次の画像で示しているように、デフォルト動作でヘッダを結合するには、IRangeインタフェースのMergeメソッドを使用します。

結合されたヘッダセルのクリック

既定では、ユーザーがヘッダセルをクリックすると、列全体が選択状態になります。ユーザーが、結合されたヘッダセルをクリックしたときの選択範囲を、GcSpreadSheetクラスのMergedCellSelectionPolicyプロパティで設定できます。以下、列ヘッダの2行1列目のセル(「1st Quarter」セル)をクリックした場合の、MergedCellSelectionPolicy列挙体の各設定値と選択範囲です。

Default Contained

既定値。結合の起点の列(行)のみを選択します。

ヘッダ領域に収まるセルを選択します。

Ignore Intersected

クリックされた列(行)のみを選択します。

ヘッダ領域に含まれるセルをすべて選択します。

次のコードは、2列を含む行ヘッダと3行を含む列ヘッダでセル結合を示します。 

コードのコピー
gcSpreadSheet.MergedCellSelectionPolicy = GrapeCity.Wpf.SpreadSheet.MergedCellSelectionPolicy.Ignore;

// ColumnHeaderセルを結合します。
// 列ヘッダの行数を設定します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.RowCount = 3;
// 行ヘッダの列数を設定します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.ColumnCount = 2;
// 結合した列ヘッダセルのラベルを定義します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["A3"].Text = "East";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["B3"].Text = "West";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["C3"].Text = "East";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["D3"].Text = "West";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["E3"].Text = "East";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["F3"].Text = "West";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["G3"].Text = "East";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["H3"].Text = "West";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["A2"].Text = "Quarter 1";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["C2"].Text = "Quarter 2";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["E2"].Text = "Quarter 3";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["G2"].Text = "Quarter 4";
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["A1"].Text = "Fiscal Year 2020";
// 列ヘッダーセルの結合を定義します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["A1:H1"].Merge();
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["A2:B2"].Merge();
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["C2:D2"].Merge();
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["E2:F2"].Merge();
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells["G2:H2"].Merge();

// RowHeaderセルを結合します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells["A1"].Text = "Row 1";
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells["A2"].Text = "Row 2";
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells["A1:B1"].Merge();
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells["A2:B2"].Merge();
コードのコピー
gcSpreadSheet.MergedCellSelectionPolicy = GrapeCity.Wpf.SpreadSheet.MergedCellSelectionPolicy.Ignore

'ColumnHeaderセルを結合します。
'列ヘッダの行数を設定します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.RowCount = 3
'行ヘッダの列数を設定します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.ColumnCount = 2
'結合した列ヘッダセルのラベルを定義します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("A3").Text = "East"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("B3").Text = "West"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("C3").Text = "East"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("D3").Text = "West"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("E3").Text = "East"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("F3").Text = "West"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("G3").Text = "East"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("H3").Text = "West"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("A2").Text = "1st Quarter"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("C2").Text = "2nd Quarter"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("E2").Text = "3rd Quarter"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("G2").Text = "4th Quarter"
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("A1").Text = "Fiscal Year 2020"

'列ヘッダーセルの結合を定義します。
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("A1:H1").Merge()
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("A2:B2").Merge()
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("C2:D2").Merge()
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("E2:F2").Merge()
gcSpreadSheet.Workbook.ActiveSheet.ColumnHeader.Cells("G2:H2").Merge()

'RowHeaderセルを結合します。
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells("A1").Text = "Row 1"
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells("A2").Text = "Row 2"
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells("A1:B1").Merge()
gcSpreadSheet.Workbook.ActiveSheet.RowHeader.Cells("A2:B2").Merge()

ヘッダのスタイルのカスタマイズ

行と列のヘッダには、背景色、セル型、テキストの向きなど、様々な外観をカスタマイズすることができます。

次の図は、列ヘッダの外観をカスタマイズする方法を示します。

行と列のヘッダをカスタマイズする時、いくつかの制限があります。

以下のコードは、IRangeインターフェイスのCellTypeOrientation、およびInteriorプロパティを使用して列ヘッダをカスタマイズする方法を示します。

コードのコピー
// 列ヘッダの指定されたセルでは、セル型がデフォルト以外に設定されているので、方向を30に設定できます。
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1:C1"].CellType = UniversalCellType.FromWorkbook(GcSpreadSheet.Workbook);
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1:C1"].Orientation = 30;
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1:C1"].Interior.Pattern = PatternType.LinearGradient;
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1:C1"].HorizontalAlignment = GrapeCity.Spreadsheet.HorizontalAlignment.Center;
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1"].RowHeight = 54;
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["A1"].Text = "1月";
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["B1"].Text = "2月";
GcSpreadSheet.Workbook.Worksheets[0].ColumnHeader.Cells["C1"].Text = "3月";
コードのコピー
' 列ヘッダの指定されたセルでは、セル型がデフォルト以外に設定されているので、方向を30に設定できます。
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1:C1").CellType = UniversalCellType.FromWorkbook(GcSpreadSheet.Workbook)
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1:C1").Orientation = 30
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1:C1").Interior.Pattern = PatternType.LinearGradient
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1:C1").HorizontalAlignment = GrapeCity.Spreadsheet.HorizontalAlignment.Center
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1").RowHeight = 54
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("A1").Text = "1月"
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("B1").Text = "2月"
GcSpreadSheet.Workbook.Worksheets(0).ColumnHeader.Cells("C1").Text = "3月"