private void Form1_Load(object sender, System.EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 7;
//フィルタイン行用の名前付きスタイルオブジェクトを作成します
FarPoint.Win.Spread.NamedStyle InNs = new FarPoint.Win.Spread.NamedStyle();
InNs.BackColor = Color.LightCyan;
InNs.ForeColor = Color.Red;
//フィルタアウト行用の名前付きスタイルオブジェクトを作成します
FarPoint.Win.Spread.NamedStyle OutNs = new FarPoint.Win.Spread.NamedStyle();
OutNs.BackColor = Color.LemonChiffon;
OutNs.ForeColor = Color.Green;
//1列目に対する新しいフィルタ列定義を作成します(デフォルト設定の定義)
FarPoint.Win.Spread.FilterColumnDefinition fcd = new FarPoint.Win.Spread.FilterColumnDefinition(0);
//StyleRowFilterオブジェクト(スタイルフィルタ)を作成し、上記フィルタ列定義を追加します
FarPoint.Win.Spread.StyleRowFilter sf = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, InNs, OutNs);
sf.AddColumn(fcd);
//作成した行フィルタオブジェクトをシート設定します
fpSpread1.ActiveSheet.RowFilter = sf;
fpSpread1.ActiveSheet.Cells[0, 0].Value = "North";
fpSpread1.ActiveSheet.Cells[1, 0].Value = "South";
fpSpread1.ActiveSheet.Cells[2, 0].Value = "East";
fpSpread1.ActiveSheet.Cells[3, 0].Value = "South";
fpSpread1.ActiveSheet.Cells[4, 0].Value = "North";
fpSpread1.ActiveSheet.Cells[5, 0].Value = "North";
fpSpread1.ActiveSheet.Cells[6, 0].Value = "West";
fpSpread1.ActiveSheet.Columns[0].Width = 80;
}
private void button1_Click(object sender, System.EventArgs e)
{
//*********************************************
//1列目がフィルタリングされていなければ終了
//*********************************************
if (fpSpread1.ActiveSheet.RowFilter.IsFiltered(0) != true)
{
return;
}
//*********************************************
//フィルタリング文字列
//*********************************************
Console.WriteLine("フィルタリング文字列:" + fpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(0));
Console.WriteLine("");
//*********************************************
//フィルタイン(表示)された行数
//*********************************************
Console.WriteLine("フィルタイン(表示)された行数:" + fpSpread1.ActiveSheet.RowFilter.GetIntersectedFilteredInRows().Length.ToString());
Console.WriteLine("");
//*********************************************
//フィルタアウト(非表示)された行数
//*********************************************
Console.WriteLine("フィルタアウト(非表示)された行数:" + fpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().Count.ToString());
Console.WriteLine("");
for (int i = 0; i <= fpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().Count - 1 ; i++)
{
//*********************************************
//フィルタアウト(非表示)された行インデックス
//*********************************************
Console.WriteLine("フィルタアウト(非表示)された行インデックス:" + Convert.ToString(fpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList()[i]));
}
Console.WriteLine("");
//*********************************************
//フィルタイン(表示)/アウト(非表示)された行
//*********************************************
for (int i = 0; i <= fpSpread1.ActiveSheet.RowCount -1 ; i++)
{
if (fpSpread1.ActiveSheet.RowFilter.IsRowFilteredOut(i) == true)
Console.WriteLine("フィルタアウト(非表示)された行のデータ:" + fpSpread1.ActiveSheet.GetText(i, 0));
else
Console.WriteLine("フィルタイン(表示)されている行のデータ:" + fpSpread1.ActiveSheet.GetText(i, 0));
}
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 7
'フィルタイン行用の名前付きスタイルオブジェクトを作成します
Dim InNs As New FarPoint.Win.Spread.NamedStyle
InNs.BackColor = Color.LightCyan
InNs.ForeColor = Color.Red
'フィルタアウト行用の名前付きスタイルオブジェクトを作成します
Dim OutNs As New FarPoint.Win.Spread.NamedStyle
OutNs.BackColor = Color.LemonChiffon
OutNs.ForeColor = Color.Green
'1列目に対する新しいフィルタ列定義を作成します(デフォルト設定の定義)
Dim fcd As New FarPoint.Win.Spread.FilterColumnDefinition(0)
'StyleRowFilterオブジェクト(スタイルフィルタ)を作成し、上記フィルタ列定義を追加します
Dim sf As New FarPoint.Win.Spread.StyleRowFilter(FpSpread1.ActiveSheet, InNs, OutNs)
sf.AddColumn(fcd)
'作成した行フィルタオブジェクトをシート設定します
FpSpread1.ActiveSheet.RowFilter = sf
FpSpread1.ActiveSheet.Cells(0, 0).Value = "North"
FpSpread1.ActiveSheet.Cells(1, 0).Value = "South"
FpSpread1.ActiveSheet.Cells(2, 0).Value = "East"
FpSpread1.ActiveSheet.Cells(3, 0).Value = "South"
FpSpread1.ActiveSheet.Cells(4, 0).Value = "North"
FpSpread1.ActiveSheet.Cells(5, 0).Value = "North"
FpSpread1.ActiveSheet.Cells(6, 0).Value = "West"
FpSpread1.ActiveSheet.Columns(0).Width = 80
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'*********************************************
'1列目がフィルタリングされていなければ終了
'*********************************************
If Not FpSpread1.ActiveSheet.RowFilter.IsFiltered(0) Then
Return
End If
'*********************************************
'フィルタリング文字列
'*********************************************
Console.WriteLine("フィルタリング文字列:" + FpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(0))
Console.WriteLine("")
'*********************************************
'フィルタイン(表示)された行数
'*********************************************
Console.WriteLine("フィルタイン(表示)された行数:" + FpSpread1.ActiveSheet.RowFilter.GetIntersectedFilteredInRows().Length.ToString)
Console.WriteLine("")
'*********************************************
'フィルタアウト(非表示)された行数
'*********************************************
Console.WriteLine("フィルタアウト(非表示)された行数:" + FpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().Count.ToString)
Console.WriteLine("")
For i As Integer = 0 To FpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList.Count - 1
'*********************************************
'フィルタアウト(非表示)された行インデックス
'*********************************************
Console.WriteLine("フィルタアウト(非表示)された行インデックス:" + Convert.ToString(FpSpread1.ActiveSheet.RowFilter.GetFilteredOutRowList().Item(i)))
Next
Console.WriteLine("")
'*********************************************
'フィルタイン(表示)/アウト(非表示)された行
'*********************************************
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
If FpSpread1.ActiveSheet.RowFilter.IsRowFilteredOut(i) = True Then
Console.WriteLine("フィルタアウト(非表示)された行のデータ:" + FpSpread1.ActiveSheet.GetText(i, 0))
Else
Console.WriteLine("フィルタイン(表示)されている行のデータ:" + FpSpread1.ActiveSheet.GetText(i, 0))
End If
Next
End Sub