MESCIUS SPREAD for Windows Forms 17.0J
列またはグループのフッタの表示

シートには、列フッタ、グループ フッタ(またはその両方)を表示し、数式やテキストなどの情報を指定することができます。列フッタは、シートの下部にある領域です。グループ フッタは、(グループ化機能を使用した場合)グループ化されたデータを含むシートの下部にフッタセルの余分な行です。

API の詳細については、SheetView クラスの ColumnFooter プロパティと、ColumnFooter クラスのさまざまなメンバーを参照してください。

数式を使用して、列フッタまたはグループフッタの結果を計算するには、ColumnFooter オブジェクトの SetAggregationType メソッドを列の正しい数式タイプに設定します。次の図は、列に数式を含むグループバーと、列フッタを表示示します。

Spread control with red grid lines

グループフッタは、列ヘッダでグループ化した後にグループの最後行に表示される追加の行です。グループが作成した後、GroupFooterVisible プロパティを true に設定する必要があります。Grouped イベントを使用して、ユーザーがグループを作成した後、グループフッタに情報を追加できます。

グループ化の詳細については、グループ化 を参照してください。

設定方法

シートに対する ColumnFooter の Visible プロパティを設定します。

サンプルコード

次のサンプル コードは、列フッタを表示し、セル範囲とテキストの色を設定します。

fpSpread1.Sheets[0].RowCount = 10;
fpSpread1.Sheets[0].ColumnCount = 15;
// 列フッタを表示します。
fpSpread1.Sheets[0].ColumnFooter.Visible = true;
fpSpread1.Sheets[0].ColumnFooter.RowCount = 2;
fpSpread1.Sheets[0].ColumnFooter.DefaultStyle.ForeColor = Color.Purple;
fpSpread1.Sheets[0].ColumnFooter.Columns[12].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
fpSpread1.Sheets[0].ColumnFooter.Cells[0, 12].RowSpan = 2;
fpSpread1.Sheets[0].ColumnFooter.Cells[0, 0].Value = "test";
fpSpread1.Sheets(0).RowCount = 10
fpSpread1.Sheets(0).ColumnCount = 15
' 列フッタを表示します。
fpSpread1.Sheets(0).ColumnFooter.Visible = true
fpSpread1.Sheets(0).ColumnFooter.RowCount = 2
fpSpread1.Sheets(0).ColumnFooter.DefaultStyle.ForeColor = Color.Purple
fpSpread1.Sheets(0).ColumnFooter.Columns(12).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left
fpSpread1.Sheets(0).ColumnFooter.Cells(0, 12).RowSpan = 2
fpSpread1.Sheets(0).ColumnFooter.Cells(0, 0).Value = "test

設定方法

  1. シートの ColumnFooter の Visible プロパティを設定します。
  2. 列の SetAggregationType メソッドを設定します。

サンプルコード

次のサンプル コードは、最初列の値を合計して列フッタに表示し、2 番目のグループの値を合計して、グループフッタに表示します。

private void Form1_Load(object sender, System.EventArgs e)
 {
 fpSpread1.Sheets[0].RowCount=8;
 fpSpread1.Sheets[0].ColumnCount = 15;
 fpSpread1.Sheets[0].GroupBarInfo.Visible = true;
 fpSpread1.Sheets[0].AllowGroup = true;
 fpSpread1.Sheets[0].GroupFooterVisible = true;
 fpSpread1.Sheets[0].ColumnFooter.Visible = true;
 fpSpread1.Sheets[0].ColumnFooter.RowCount = 2;
 fpSpread1.Sheets[0].ColumnFooter.Columns[12].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
 fpSpread1.Sheets[0].ColumnFooter.Cells[0, 12].RowSpan = 2;
 //値
 for (int r = 0; r < fpSpread1.Sheets[0].RowCount; r++)
 {
 for (int j = 0; j < fpSpread1.Sheets[0].ColumnCount; j++)
 {
 fpSpread1.Sheets[0].Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets[0].ColumnCount);
 }
 }
int i = 0;
 fpSpread1.Sheets[0].ColumnFooter.SetAggregationType(0,1, FarPoint.Win.Spread.Model.AggregationType.Sum);
 fpSpread1.Sheets[0].ColumnFooter.Cells[0, i].Value = "Sum";
 }
 private void fpSpread1_Grouped(object sender, EventArgs e)
 FarPoint.Win.Spread.Model.GroupDataModel gdm;
gdm = (FarPoint.Win.Spread.Model.GroupDataModel)fpSpread1.ActiveSheet.Models.Data;
 gdm.GroupFooterVisible = true;
 FarPoint.Win.Spread.Model.Group g1 = (FarPoint.Win.Spread.Model.Group)gdm.Groups[1];
 ((FarPoint.Win.Spread.Model.IAggregationSupport)g1.GroupFooter.DataModel).SetCellAggregationType(0, 0,
 FarPoint.Win.Spread.Model.AggregationType.Sum);
 fpSpread1.ActiveSheet.Models.Data = gdm;
 }
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 fpSpread1.Sheets(0).RowCount = 8
 fpSpread1.Sheets(0).ColumnCount = 15
 fpSpread1.Sheets(0).GroupBarInfo.Visible = True
 fpSpread1.Sheets(0).AllowGroup = True
 fpSpread1.Sheets(0).GroupFooterVisible = True
 fpSpread1.Sheets(0).ColumnFooter.Visible = True
 fpSpread1.Sheets(0).ColumnFooter.RowCount = 2
 fpSpread1.Sheets(0).ColumnFooter.Columns(12).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left
 '値
 Dim r As Integer
 Dim j As Integer
 For r = 0 To fpSpread1.Sheets(0).RowCount
 For j = 0 To fpSpread1.Sheets(0).ColumnCount
 fpSpread1.Sheets(0).Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets(0).ColumnCount)
 Next j
 Next r
 Dim i As Integer
i = 0
 fpSpread1.Sheets(0).ColumnFooter.SetAggregationType(0, 1, FarPoint.Win.Spread.Model.AggregationType.Sum)
 fpSpread1.Sheets(0).ColumnFooter.Cells(0, i).Value = "Sum"
 End Sub
 Private Sub fpSpread1_Grouped(ByVal sender As Object, ByVal e As System.EventArgs) Handles fpSpread1.Grouped
 Dim gdm As FarPoint.Win.Spread.Model.GroupDataModel
 Dim g1 As FarPoint.Win.Spread.Model.Group
gdm = fpSpread1.Sheets(0).Models.Data
 gdm.GroupFooterVisible = True
 g1 = gdm.Groups(1)
 CType(g1.GroupFooter.DataModel, FarPoint.Win.Spread.Model.IAggregationSupport).SetCellAggregationType(0, 0, FarPoint.Win.Spread.Model.AggregationType.Sum)
 fpSpread1.ActiveSheet.Models.Data = gdm
 End Sub

サンプルコード

次のサンプル コードは、列フッタを表示し、別のシートから数式を追加します。

 fpSpread1.Sheets.Count = 3;
 fpSpread1.Sheets[0].RowCount = 8;
 fpSpread1.Sheets[0].ColumnCount = 15;
 fpSpread1.Sheets[0].GroupBarInfo.Visible = true;
 fpSpread1.Sheets[0].AllowGroup = true;
 fpSpread1.Sheets[0].GroupFooterVisible = true;
 fpSpread1.Sheets[0].ColumnFooter.Visible = true;
 fpSpread1.Sheets[0].ColumnFooter.RowCount = 2;
 fpSpread1.Sheets[0].ColumnFooter.Columns[12].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
 fpSpread1.Sheets[0].ColumnFooter.Cells[0, 12].RowSpan = 2;
 //値
 for (int r = 0; r < fpSpread1.Sheets[0].RowCount; r++)
 {
     for (int j = 0; j < fpSpread1.Sheets[0].ColumnCount; j++)
     {
         fpSpread1.Sheets[0].Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets[0].ColumnCount);
     }
 }
int i = 0;       
 fpSpread1.Sheets[1].RowCount = 10;
 fpSpread1.Sheets[1].ColumnCount = 15;
 fpSpread1.Sheets[1].GroupBarInfo.Visible = true;
 fpSpread1.Sheets[1].AllowGroup = true;
 fpSpread1.Sheets[1].GroupFooterVisible = true;
 fpSpread1.Sheets[1].ColumnFooter.Visible = true;
 fpSpread1.Sheets[1].ColumnFooter.RowCount = 2;
 fpSpread1.Sheets[1].ColumnFooter.Columns[12].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
 fpSpread1.Sheets[1].ColumnFooter.Cells[0, 12].RowSpan = 2;
 //値
 for (int r = 0; r < fpSpread1.Sheets[1].RowCount; r++)
 {
     for (int j = 0; j < fpSpread1.Sheets[1].ColumnCount; j++)
     {
         fpSpread1.Sheets[1].Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets[1].ColumnCount);
     }
 }
         
 fpSpread1.Sheets[0].ColumnFooter.Cells[0, i].Value = "2ndSum";
 fpSpread1.Sheets[0].ColumnFooter.Cells[0, 1].Formula = "SUM(Sheet2!A:A)";
 fpSpread1.Sheets.Count = 3
 fpSpread1.Sheets(0).RowCount = 8
 fpSpread1.Sheets(0).ColumnCount = 15
 fpSpread1.Sheets(0).GroupBarInfo.Visible = True
 fpSpread1.Sheets(0).AllowGroup = True
 fpSpread1.Sheets(0).GroupFooterVisible = True
 fpSpread1.Sheets(0).ColumnFooter.Visible = True
 fpSpread1.Sheets(0).ColumnFooter.RowCount = 2
 fpSpread1.Sheets(0).ColumnFooter.Columns(12).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left
 '値
 Dim r As Integer
 Dim j As Integer
 For r = 0 To fpSpread1.Sheets(0).RowCount
     For j = 0 To fpSpread1.Sheets(0).ColumnCount
         fpSpread1.Sheets(0).Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets(0).ColumnCount)
     Next j
 Next r
 fpSpread1.Sheets(1).RowCount = 10
 fpSpread1.Sheets(1).ColumnCount = 15
 fpSpread1.Sheets(1).GroupBarInfo.Visible = True
 fpSpread1.Sheets(1).AllowGroup = True
 fpSpread1.Sheets(1).GroupFooterVisible = True
 fpSpread1.Sheets(1).ColumnFooter.Visible = True
 fpSpread1.Sheets(1).ColumnFooter.RowCount = 2
 fpSpread1.Sheets(1).ColumnFooter.Columns(12).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left
 fpSpread1.Sheets(1).ColumnFooter.Cells(0, 12).RowSpan = 2
 '値
 For r = 0 To fpSpread1.Sheets(1).RowCount
     For j = 0 To fpSpread1.Sheets(1).ColumnCount
         fpSpread1.Sheets(1).Models.Data.SetValue(r, j, j + r * fpSpread1.Sheets(1).ColumnCount)
     Next j
 Next r
 Dim i As Integer
i = 0
 fpSpread1.Sheets(0).ColumnFooter.Cells(0, i).Value = "2ndSum"
 fpSpread1.Sheets(0).ColumnFooter.Cells(0, 1).Formula = "SUM(Sheet2!A:A)"

列フッタの書式設定

Spread では、新しいスタイルシステムで列フッタ書式を表示するには、IRange インターフェースの NumberFormat プロパティを使用します。

次のサンプル コードでは、数値型のフッタにカンマを桁区切り文字として表示します。

// Spreadで新しいスタイルシステムを設定します。
fpSpread1.LegacyBehaviors = LegacyBehaviors.None;
fpSpread1.Reset();
fpSpread1.Sheets[0].Cells[0, 1, 10, 1].Value = 1000;
fpSpread1.Sheets[0].ColumnFooterVisible = true;
fpSpread1.Sheets[0].ColumnFooterRowCount = 1;
fpSpread1.Sheets[0].ColumnFooter.SetAggregationType(0, 1, FarPoint.Win.Spread.Model.AggregationType.Sum);
// 列フッタに数値書式を設定します。
fpSpread1.AsWorkbook().ActiveSheet.ColumnFooter.Cells[0, 1].NumberFormat = "#,##0";
' Spreadで新しいスタイルシステムを設定します。
fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.Reset()
fpSpread1.Sheets(0).Cells(0, 1, 10, 1).Value = 1000
fpSpread1.Sheets(0).ColumnFooterVisible = True
fpSpread1.Sheets(0).ColumnFooterRowCount = 1
fpSpread1.Sheets(0).ColumnFooter.SetAggregationType(0, 1, FarPoint.Win.Spread.Model.AggregationType.Sum)
' 列フッタに数値書式を設定します。
fpSpread1.AsWorkbook().ActiveSheet.ColumnFooter.Cells(0, 1).NumberFormat = "#,##0"

列フッタ内のテキストの折り返し

列フッタでのテキストの折り返しをカスタマイズするには、IRange インターフェースの WrapText プロパティを true に設定します。 セル内で折り返されたテキストを適切に表示するには、ColumnFooter クラスの RowHeight プロパティを使用して行の高さを調整する必要があります。

この WrapText プロパティを適用する前に、SpreadSkin クラスの ColumnHeaderRenderer.WordWrap2 プロパティの値が null に設定されていることを確認してください。 デフォルトでは、デフォルトスキンの場合のみ、ColumnHeaderRenderer.WordWrap2 値は null です。

次の図は、列フッタ内の折り返されたテキストの例です。

次のサンプル コードは、IRange.WrapText プロパティを使用して列フッタのテキストを折り返す方法を示しています。

// 列フッタ内のテキストを折り返します
activeSheet.ColumnFooter.Visible = true;
activeSheet.ColumnFooter.Cells.RowHeight = 90;
activeSheet.ColumnFooter.Cells[0, 0].Value = "This is a long footer text";
activeSheet.ColumnFooter.Cells[0, 0].WrapText = true;
' 列フッタ内のテキストを折り返します  
activeSheet.ColumnFooter.Visible = True
activeSheet.ColumnFooter.Cells.RowHeight = 90
activeSheet.ColumnFooter.Cells(0, 0).Value = "This is a long footer text"
activeSheet.ColumnFooter.Cells(0, 0).WrapText = True
参照

 

 


© MESCIUS inc. All rights reserved.