作成日: 2024/02/21 最終更新日: 2024/02/21
文書種別
使用方法
詳細
例えば列のAllowAutoSortプロパティをTrueにした場合の自動列ソートを行った際、並べ替えが行われるのはデータの表示のみでありデータモデルが影響を受けることはありません。このような場合は以下のメソッド呼び出しにより対応します。(いずれもSheetViewクラスメンバ)
【SortRange】メソッド
データモデル内のセル範囲を並べ替えます。データモデル内のセル範囲を並べ替えたい場合には本メソッド呼び出しを行います。
また、「表示データ」と「実データ」を相互参照することも出来ます。
【GetViewRowFromModelRow】メソッド
モデルの指定した行インデックスに対応するシート内の行を取得します
【GetModelRowFromViewRow】メソッド
シートの指定した行インデックスに対応するデータモデル内の行を取得します
◎サンプルコード(VB)
◎サンプルコード(C#)
【SortRange】メソッド
データモデル内のセル範囲を並べ替えます。データモデル内のセル範囲を並べ替えたい場合には本メソッド呼び出しを行います。
また、「表示データ」と「実データ」を相互参照することも出来ます。
【GetViewRowFromModelRow】メソッド
モデルの指定した行インデックスに対応するシート内の行を取得します
【GetModelRowFromViewRow】メソッド
シートの指定した行インデックスに対応するデータモデル内の行を取得します
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 5
FpSpread1.ActiveSheet.ColumnCount = 2
Dim dModel As FarPoint.Win.Spread.Model.DefaultSheetDataModel
dModel = FpSpread1.ActiveSheet.Models.Data
dModel.SetValue(0, 0, 10)
dModel.SetValue(1, 0, 15)
dModel.SetValue(2, 0, 1)
dModel.SetValue(3, 0, 50)
dModel.SetValue(4, 0, 5)
FpSpread1.ActiveSheet.ColumnHeader.Columns(0, 0).AllowAutoSort = True
Label1.Text = "データモデルの並び" & vbCrLf & "10" & vbCrLf & "15" & vbCrLf & "1" & vbCrLf & "50" & vbCrLf & "5"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' モデルの指定した行インデックスに対応するシート内の行を取得します
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
Console.WriteLine("モデル行{0}に対する行インデックス:{1}", i, FpSpread1.ActiveSheet.GetViewRowFromModelRow(i))
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' シートの指定した行インデックスに対応するデータモデル内の行を取得します
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
Console.WriteLine("行{0}に対するモデル行インデックス:{1}", i, FpSpread1.ActiveSheet.GetModelRowFromViewRow(i))
Next
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' データモデル内のセル範囲を並べ替えます
Dim sort() As FarPoint.Win.Spread.SortInfo = {New FarPoint.Win.Spread.SortInfo(0, True)}
FpSpread1.ActiveSheet.SortRange(0, 0, 5, 1, True, sort)
End Sub
FpSpread1.ActiveSheet.RowCount = 5
FpSpread1.ActiveSheet.ColumnCount = 2
Dim dModel As FarPoint.Win.Spread.Model.DefaultSheetDataModel
dModel = FpSpread1.ActiveSheet.Models.Data
dModel.SetValue(0, 0, 10)
dModel.SetValue(1, 0, 15)
dModel.SetValue(2, 0, 1)
dModel.SetValue(3, 0, 50)
dModel.SetValue(4, 0, 5)
FpSpread1.ActiveSheet.ColumnHeader.Columns(0, 0).AllowAutoSort = True
Label1.Text = "データモデルの並び" & vbCrLf & "10" & vbCrLf & "15" & vbCrLf & "1" & vbCrLf & "50" & vbCrLf & "5"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' モデルの指定した行インデックスに対応するシート内の行を取得します
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
Console.WriteLine("モデル行{0}に対する行インデックス:{1}", i, FpSpread1.ActiveSheet.GetViewRowFromModelRow(i))
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' シートの指定した行インデックスに対応するデータモデル内の行を取得します
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
Console.WriteLine("行{0}に対するモデル行インデックス:{1}", i, FpSpread1.ActiveSheet.GetModelRowFromViewRow(i))
Next
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' データモデル内のセル範囲を並べ替えます
Dim sort() As FarPoint.Win.Spread.SortInfo = {New FarPoint.Win.Spread.SortInfo(0, True)}
FpSpread1.ActiveSheet.SortRange(0, 0, 5, 1, True, sort)
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 5;
fpSpread1.ActiveSheet.ColumnCount = 2;
FarPoint.Win.Spread.Model.DefaultSheetDataModel dModel;
dModel = fpSpread1.ActiveSheet.Models.Data as FarPoint.Win.Spread.Model.DefaultSheetDataModel;
dModel.SetValue(0, 0, 10);
dModel.SetValue(1, 0, 15);
dModel.SetValue(2, 0, 1);
dModel.SetValue(3, 0, 50);
dModel.SetValue(4, 0, 5);
fpSpread1.ActiveSheet.ColumnHeader.Columns[0, 0].AllowAutoSort = true;
label1.Text = "データモデルの並び¥r¥n10¥r¥n15¥r¥n1¥r¥n50¥r¥n5";
}
private void button1_Click(object sender, EventArgs e)
{
// モデルの指定した行インデックスに対応するシート内の行を取得します
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
Console.WriteLine("モデル行{0}に対する行インデックス:{1}", i, fpSpread1.ActiveSheet.GetViewRowFromModelRow(i));
}
}
private void button2_Click(object sender, EventArgs e)
{
// シートの指定した行インデックスに対応するデータモデル内の行を取得します
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
Console.WriteLine("行{0}に対するモデル行インデックス:{1}", i, fpSpread1.ActiveSheet.GetModelRowFromViewRow(i));
}
}
private void button3_Click(object sender, EventArgs e)
{
// データモデル内のセル範囲を並べ替えます
FarPoint.Win.Spread.SortInfo[] sort = { new FarPoint.Win.Spread.SortInfo(0, true) };
fpSpread1.ActiveSheet.SortRange(0, 0, 5, 1, true, sort);
}
{
fpSpread1.ActiveSheet.RowCount = 5;
fpSpread1.ActiveSheet.ColumnCount = 2;
FarPoint.Win.Spread.Model.DefaultSheetDataModel dModel;
dModel = fpSpread1.ActiveSheet.Models.Data as FarPoint.Win.Spread.Model.DefaultSheetDataModel;
dModel.SetValue(0, 0, 10);
dModel.SetValue(1, 0, 15);
dModel.SetValue(2, 0, 1);
dModel.SetValue(3, 0, 50);
dModel.SetValue(4, 0, 5);
fpSpread1.ActiveSheet.ColumnHeader.Columns[0, 0].AllowAutoSort = true;
label1.Text = "データモデルの並び¥r¥n10¥r¥n15¥r¥n1¥r¥n50¥r¥n5";
}
private void button1_Click(object sender, EventArgs e)
{
// モデルの指定した行インデックスに対応するシート内の行を取得します
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
Console.WriteLine("モデル行{0}に対する行インデックス:{1}", i, fpSpread1.ActiveSheet.GetViewRowFromModelRow(i));
}
}
private void button2_Click(object sender, EventArgs e)
{
// シートの指定した行インデックスに対応するデータモデル内の行を取得します
for (var i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
Console.WriteLine("行{0}に対するモデル行インデックス:{1}", i, fpSpread1.ActiveSheet.GetModelRowFromViewRow(i));
}
}
private void button3_Click(object sender, EventArgs e)
{
// データモデル内のセル範囲を並べ替えます
FarPoint.Win.Spread.SortInfo[] sort = { new FarPoint.Win.Spread.SortInfo(0, true) };
fpSpread1.ActiveSheet.SortRange(0, 0, 5, 1, true, sort);
}