作成日: 2018/09/28 最終更新日: 2018/09/28
文書種別
使用方法
詳細
フィルタ操作で非表示になっている行番号はGetFilteredOutRowListメソッドで取得することができるので、それを使って表示されている行番号で現在選択されているものを取得することが可能です。
以下にサンプルコードを紹介します。
◎サンプルコード(VB)
◎サンプルコード(C#)
以下にサンプルコードを紹介します。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' SPREADの初期設定
FpSpread1.ActiveSheet.RowCount = 10
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 3)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' フィルタ操作で非表示になっている行番号の取得
Dim outRows As Integer() = FpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().ToArray(GetType(Integer))
'選択された行番号(表示されている行のみ)の取得
'FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections()
Dim ranges As FarPoint.Win.Spread.Model.CellRange() = FpSpread1.ActiveSheet.GetSelections()
For Each range As FarPoint.Win.Spread.Model.CellRange In ranges
For i As Integer = range.Row To range.Row + range.RowCount - 1
If Not outRows.Contains(i) Then
Console.WriteLine("row={0}", i)
End If
Next
Next
End Sub
' SPREADの初期設定
FpSpread1.ActiveSheet.RowCount = 10
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 3)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' フィルタ操作で非表示になっている行番号の取得
Dim outRows As Integer() = FpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().ToArray(GetType(Integer))
'選択された行番号(表示されている行のみ)の取得
'FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections()
Dim ranges As FarPoint.Win.Spread.Model.CellRange() = FpSpread1.ActiveSheet.GetSelections()
For Each range As FarPoint.Win.Spread.Model.CellRange In ranges
For i As Integer = range.Row To range.Row + range.RowCount - 1
If Not outRows.Contains(i) Then
Console.WriteLine("row={0}", i)
End If
Next
Next
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// SPREADの初期設定
fpSpread1.ActiveSheet.RowCount = 10;
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
fpSpread1.ActiveSheet.SetValue(i, 0, i % 3);
fpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i));
}
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true;
}
private void button1_Click(object sender, EventArgs e)
{
// フィルタ操作で非表示になっている行番号の取得
int[] outRows = (int[])fpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().ToArray(typeof(Int32));
// 選択された行番号(表示されている行のみ)の取得
FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections();
foreach (FarPoint.Win.Spread.Model.CellRange range in ranges)
{
for (var i = range.Row; i < range.Row + range.RowCount; i++)
{
if (!outRows.Contains(i))
{
Console.WriteLine("row={0}", i);
}
}
}
}
{
// SPREADの初期設定
fpSpread1.ActiveSheet.RowCount = 10;
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
fpSpread1.ActiveSheet.SetValue(i, 0, i % 3);
fpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i));
}
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true;
}
private void button1_Click(object sender, EventArgs e)
{
// フィルタ操作で非表示になっている行番号の取得
int[] outRows = (int[])fpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().ToArray(typeof(Int32));
// 選択された行番号(表示されている行のみ)の取得
FarPoint.Win.Spread.Model.CellRange[] ranges = fpSpread1.ActiveSheet.GetSelections();
foreach (FarPoint.Win.Spread.Model.CellRange range in ranges)
{
for (var i = range.Row; i < range.Row + range.RowCount; i++)
{
if (!outRows.Contains(i))
{
Console.WriteLine("row={0}", i);
}
}
}
}
旧文書番号
83266