作成日: 2018/07/31 最終更新日: 2018/11/21
文書種別
使用方法
詳細
RowFilterオブジェクトとフィルタ文字列を使用することでフィルタ設定、SortIndicatorオブジェクトを使用することでソート設定の保存・復元が可能です。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(VB)
Public Class Form1
Private hrFilter As FarPoint.Win.Spread.HideRowFilter
Private filterStrings As String()
Private sortIndicators As FarPoint.Win.Spread.Model.SortIndicator()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'フィルタとソートの設定
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.SetColumnAllowFilter(0, True)
FpSpread1.ActiveSheet.SetColumnAllowAutoSort(1, True)
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 5)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' フィルタ設定の保存
hrFilter = FpSpread1.ActiveSheet.RowFilter
filterStrings = New String(FpSpread1.ActiveSheet.ColumnCount) {}
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
filterStrings(i) = FpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(i)
Next
' フィルタのリセット
FpSpread1.ActiveSheet.AutoFilterReset(0)
' ソート設定の保存
sortIndicators = New FarPoint.Win.Spread.Model.SortIndicator(FpSpread1.ActiveSheet.ColumnCount) {}
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
sortIndicators(i) = FpSpread1.ActiveSheet.Columns(i).SortIndicator
Next
' ソートのリセット
FpSpread1.ActiveSheet.Models.ResetViewRowIndexes()
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.Columns(i).SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.None
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' 保存したフィルタ設定の復元
FpSpread1.ActiveSheet.RowFilter = hrFilter
Dim colDefs As FarPoint.Win.Spread.FilterColumnDefinitionCollection = FpSpread1.ActiveSheet.RowFilter.ColumnDefinitions
For i As Integer = 0 To colDefs.Count - 1
Dim fcd As FarPoint.Win.Spread.FilterColumnDefinition = colDefs(i)
If fcd.Filters.Count > 0 Then
For j = 0 To fcd.Filters.Count - 1
If fcd.Filters(j).DisplayName = filterStrings(fcd.ColumnIndex) Then
FpSpread1.ActiveSheet.AutoFilterColumn(fcd.ColumnIndex, fcd.Filters(j).DisplayName, j)
Exit For
End If
Next
End If
Next
' 保存したソート設定の復元
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
If sortIndicators(i) = FarPoint.Win.Spread.Model.SortIndicator.Ascending Then
FpSpread1.ActiveSheet.AutoSortColumn(i, True)
ElseIf sortIndicators(i) = FarPoint.Win.Spread.Model.SortIndicator.Descending Then
FpSpread1.ActiveSheet.AutoSortColumn(i, False)
End If
Next
End Sub
End Class
Private hrFilter As FarPoint.Win.Spread.HideRowFilter
Private filterStrings As String()
Private sortIndicators As FarPoint.Win.Spread.Model.SortIndicator()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'フィルタとソートの設定
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.SetColumnAllowFilter(0, True)
FpSpread1.ActiveSheet.SetColumnAllowAutoSort(1, True)
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 5)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' フィルタ設定の保存
hrFilter = FpSpread1.ActiveSheet.RowFilter
filterStrings = New String(FpSpread1.ActiveSheet.ColumnCount) {}
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
filterStrings(i) = FpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(i)
Next
' フィルタのリセット
FpSpread1.ActiveSheet.AutoFilterReset(0)
' ソート設定の保存
sortIndicators = New FarPoint.Win.Spread.Model.SortIndicator(FpSpread1.ActiveSheet.ColumnCount) {}
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
sortIndicators(i) = FpSpread1.ActiveSheet.Columns(i).SortIndicator
Next
' ソートのリセット
FpSpread1.ActiveSheet.Models.ResetViewRowIndexes()
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.Columns(i).SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.None
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' 保存したフィルタ設定の復元
FpSpread1.ActiveSheet.RowFilter = hrFilter
Dim colDefs As FarPoint.Win.Spread.FilterColumnDefinitionCollection = FpSpread1.ActiveSheet.RowFilter.ColumnDefinitions
For i As Integer = 0 To colDefs.Count - 1
Dim fcd As FarPoint.Win.Spread.FilterColumnDefinition = colDefs(i)
If fcd.Filters.Count > 0 Then
For j = 0 To fcd.Filters.Count - 1
If fcd.Filters(j).DisplayName = filterStrings(fcd.ColumnIndex) Then
FpSpread1.ActiveSheet.AutoFilterColumn(fcd.ColumnIndex, fcd.Filters(j).DisplayName, j)
Exit For
End If
Next
End If
Next
' 保存したソート設定の復元
For i = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
If sortIndicators(i) = FarPoint.Win.Spread.Model.SortIndicator.Ascending Then
FpSpread1.ActiveSheet.AutoSortColumn(i, True)
ElseIf sortIndicators(i) = FarPoint.Win.Spread.Model.SortIndicator.Descending Then
FpSpread1.ActiveSheet.AutoSortColumn(i, False)
End If
Next
End Sub
End Class
◎サンプルコード(C#)
public partial class Form1 : Form
{
private FarPoint.Win.Spread.HideRowFilter hrFilter;
private string[] filterStrings;
private FarPoint.Win.Spread.Model.SortIndicator[] sortIndicators;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// フィルタとソートの設定
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.SetColumnAllowFilter(0, true);
fpSpread1.ActiveSheet.SetColumnAllowAutoSort(1, true);
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
fpSpread1.ActiveSheet.SetValue(i, 0, i % 5);
fpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i));
}
}
private void button1_Click(object sender, EventArgs e)
{
// フィルタ設定の保存
hrFilter = fpSpread1.ActiveSheet.RowFilter as FarPoint.Win.Spread.HideRowFilter;
filterStrings = new String[fpSpread1.ActiveSheet.ColumnCount];
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
filterStrings[i] = fpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(i);
}
// フィルタのリセット
fpSpread1.ActiveSheet.AutoFilterReset(0);
// ソート設定の保存
sortIndicators = new FarPoint.Win.Spread.Model.SortIndicator[fpSpread1.ActiveSheet.ColumnCount];
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
sortIndicators[i] = fpSpread1.ActiveSheet.Columns[i].SortIndicator;
}
// ソートのリセット
fpSpread1.ActiveSheet.Models.ResetViewRowIndexes();
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
fpSpread1.ActiveSheet.Columns[i].SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.None;
}
}
private void button2_Click(object sender, EventArgs e)
{
// 保存したフィルタ設定の復元
fpSpread1.ActiveSheet.RowFilter = hrFilter;
var columnDefinitions = fpSpread1.ActiveSheet.RowFilter.ColumnDefinitions;
for(int i=0, count = columnDefinitions.Count; i
{
FarPoint.Win.Spread.FilterColumnDefinition fcd = columnDefinitions[i];
if (fcd.Filters.Count > 0)
{
for (int j = 0; j < fcd.Filters.Count; j++)
{
if (fcd.Filters[j].DisplayName == filterStrings[fcd.ColumnIndex])
{
fpSpread1.ActiveSheet.AutoFilterColumn(fcd.ColumnIndex, fcd.Filters[j].DisplayName, j);
break;
}
}
}
}
// 保存したソート設定の復元
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
if (sortIndicators[i] == FarPoint.Win.Spread.Model.SortIndicator.Ascending)
{
fpSpread1.ActiveSheet.AutoSortColumn(i, true);
}
else if (sortIndicators[i] == FarPoint.Win.Spread.Model.SortIndicator.Descending)
{
fpSpread1.ActiveSheet.AutoSortColumn(i, false);
}
}
}
}
{
private FarPoint.Win.Spread.HideRowFilter hrFilter;
private string[] filterStrings;
private FarPoint.Win.Spread.Model.SortIndicator[] sortIndicators;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// フィルタとソートの設定
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.SetColumnAllowFilter(0, true);
fpSpread1.ActiveSheet.SetColumnAllowAutoSort(1, true);
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
fpSpread1.ActiveSheet.SetValue(i, 0, i % 5);
fpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i));
}
}
private void button1_Click(object sender, EventArgs e)
{
// フィルタ設定の保存
hrFilter = fpSpread1.ActiveSheet.RowFilter as FarPoint.Win.Spread.HideRowFilter;
filterStrings = new String[fpSpread1.ActiveSheet.ColumnCount];
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
filterStrings[i] = fpSpread1.ActiveSheet.RowFilter.GetColumnFilterBy(i);
}
// フィルタのリセット
fpSpread1.ActiveSheet.AutoFilterReset(0);
// ソート設定の保存
sortIndicators = new FarPoint.Win.Spread.Model.SortIndicator[fpSpread1.ActiveSheet.ColumnCount];
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
sortIndicators[i] = fpSpread1.ActiveSheet.Columns[i].SortIndicator;
}
// ソートのリセット
fpSpread1.ActiveSheet.Models.ResetViewRowIndexes();
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
fpSpread1.ActiveSheet.Columns[i].SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.None;
}
}
private void button2_Click(object sender, EventArgs e)
{
// 保存したフィルタ設定の復元
fpSpread1.ActiveSheet.RowFilter = hrFilter;
var columnDefinitions = fpSpread1.ActiveSheet.RowFilter.ColumnDefinitions;
for(int i=0, count = columnDefinitions.Count; i
FarPoint.Win.Spread.FilterColumnDefinition fcd = columnDefinitions[i];
if (fcd.Filters.Count > 0)
{
for (int j = 0; j < fcd.Filters.Count; j++)
{
if (fcd.Filters[j].DisplayName == filterStrings[fcd.ColumnIndex])
{
fpSpread1.ActiveSheet.AutoFilterColumn(fcd.ColumnIndex, fcd.Filters[j].DisplayName, j);
break;
}
}
}
}
// 保存したソート設定の復元
for (var i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
if (sortIndicators[i] == FarPoint.Win.Spread.Model.SortIndicator.Ascending)
{
fpSpread1.ActiveSheet.AutoSortColumn(i, true);
}
else if (sortIndicators[i] == FarPoint.Win.Spread.Model.SortIndicator.Descending)
{
fpSpread1.ActiveSheet.AutoSortColumn(i, false);
}
}
}
}
旧文書番号
83095