作成日: 2024/01/31 最終更新日: 2024/01/31
文書種別
使用方法
詳細
セルの値の合計を取得するとき、非表示の行を除外するにはいくつかの方法があります。
サマリ型セルを使用する
フッタにサマリ型セルを配置して合計を表示します。非表示の行はサマリ型セルのオプションで除外指定できます。
[Visual Basic]
[C#]
ループを使用する
ループを使用してセルの値を集計します。
[Visual Basic]
[C#]
LINQの使用
LINQを使用して合計を取得することができます。
[Visual Basic]
[C#]
サマリ型セルを使用する
フッタにサマリ型セルを配置して合計を表示します。非表示の行はサマリ型セルのオプションで除外指定できます。
[Visual Basic]
Imports GrapeCity.Win.MultiRow Me.GcMultiRow1.AllowUserToAddRows = False Dim template1 As Template = Template.Default Dim columnFooterSection1 As New ColumnFooterSection Dim summaryCell1 As New SummaryCell() summaryCell1.Calculation = New MathStatistics(StatisticsType.Sum, 0, True) columnFooterSection1.Cells.Add(summaryCell1) template1.ColumnFooters.Add(columnFooterSection1) Me.GcMultiRow1.Template = template1 Me.GcMultiRow1.RowCount = 10 For index As Integer = 0 To GcMultiRow1.RowCount - 1 Me.GcMultiRow1.SetValue(index, 0, index + 1) Next Me.GcMultiRow1.Rows(0).Visible = False Me.GcMultiRow1.Rows(1).Visible = False
[C#]
this.gcMultiRow1.AllowUserToAddRows = false;
Template template1 = Template.Default;
ColumnFooterSection columnFooterSection1 = new ColumnFooterSection();
SummaryCell summaryCell1 = new SummaryCell();
summaryCell1.Calculation = new MathStatistics(StatisticsType.Sum, 0, true);
columnFooterSection1.Cells.Add(summaryCell1);
template1.ColumnFooters.Add(columnFooterSection1);
this.gcMultiRow1.Template = template1;
this.gcMultiRow1.RowCount = 10;
for (int i = 0; i < this.gcMultiRow1.RowCount; i++)
{
this.gcMultiRow1.SetValue(i, 0, i + 1);
}
this.gcMultiRow1.Rows[0].Visible = false;
this.gcMultiRow1.Rows[1].Visible = false;
ループを使用する
ループを使用してセルの値を集計します。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Me.GcMultiRow1.Template = Template.Default
Me.GcMultiRow1.AllowUserToAddRows = False
Me.GcMultiRow1.RowCount = 10
Me.GcMultiRow1.Rows(0).Visible = False
Me.GcMultiRow1.Rows(1).Visible = False
For index As Integer = 0 To GcMultiRow1.RowCount - 1
Me.GcMultiRow1.SetValue(index, 0, index + 1)
Next
Dim sum As Integer = 0
For index As Integer = 0 To Me.GcMultiRow1.RowCount - 1
If Me.GcMultiRow1.Rows.GetRowState(index) And MultiRowElementStates.Visible = MultiRowElementStates.Visible Then
sum += Me.GcMultiRow1.GetValue(index, 0)
End If
Next
Console.WriteLine("表示行の合計: {0}", sum)
[C#]
using GrapeCity.Win.MultiRow;
this.gcMultiRow1.Template = Template.Default;
this.gcMultiRow1.AllowUserToAddRows = false;
this.gcMultiRow1.RowCount = 10;
this.gcMultiRow1.Rows[0].Visible = false;
this.gcMultiRow1.Rows[1].Visible = false;
for (int i = 0; i < this.gcMultiRow1.RowCount; i++)
{
this.gcMultiRow1.SetValue(i, 0, i + 1);
}
int sum = 0;
for (int i = 0; i < this.gcMultiRow1.RowCount; i++)
{
if ((this.gcMultiRow1.Rows.GetRowState(i) & MultiRowElementStates.Visible) == MultiRowElementStates.Visible)
{
sum += (int)this.gcMultiRow1.GetValue(i, 0);
}
}
Console.WriteLine("合計: {0}", sum);
LINQの使用
LINQを使用して合計を取得することができます。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Me.GcMultiRow1.Template = Template.Default
Me.GcMultiRow1.AllowUserToAddRows = False
Me.GcMultiRow1.RowCount = 10
Me.GcMultiRow1.Rows(0).Visible = False
Me.GcMultiRow1.Rows(1).Visible = False
For index As Integer = 0 To GcMultiRow1.RowCount - 1
Me.GcMultiRow1.SetValue(index, 0, index + 1)
Next
' 合計
Dim visibleRows = Me.GcMultiRow1.Rows.Where(Function(row) row.Visible)
Console.WriteLine("表示されている行数: {0}", visibleRows.Count)
Dim cellValues = visibleRows.Select(Of Integer)(Function(row) row.Cells(0).Value)
Dim sum = cellValues.Sum()
Console.WriteLine("合計: {0}", sum)
' 平均
Dim average = Me.GcMultiRow1.Rows.Where(Function(row) Row.Visible).Select(Of Integer)(Function(row) row.Cells(0).Value).Average()
Console.WriteLine("平均: {0}", average)
[C#]
using GrapeCity.Win.MultiRow;
this.gcMultiRow1.Template = Template.Default;
this.gcMultiRow1.AllowUserToAddRows = false;
this.gcMultiRow1.RowCount = 10;
this.gcMultiRow1.Rows[0].Visible = false;
this.gcMultiRow1.Rows[1].Visible = false;
for (int i = 0; i < this.gcMultiRow1.RowCount; i++)
{
this.gcMultiRow1.SetValue(i, 0, i + 1);
}
var visibleRows = this.gcMultiRow1.Rows.Where(row => row.Visible);
Console.WriteLine("表示されている行数: {0}", visibleRows.Count());
var cellValues = visibleRows.Select<Row, int>(row => (int)row.Cells[0].Value);
var sum = cellValues.Sum();
Console.WriteLine("合計: {0}", sum);
var average = this.gcMultiRow1.Rows.Where(row => row.Visible).Select(row => (int)row.Cells[0].Value).Average();
Console.WriteLine("平均: {0}", average);