セルがマージされているかを判別したい
対象製品
SPREAD for ASP.NET 8.0J
詳細
GetMergeCellメソッドにて任意のセルのマージ範囲を、GetMergeCellsメソッドにて任意のセル範囲に含まれるマージ範囲を取得することができます。
  メモ
◎サンプルコード(VB)
◎サンプルコード(C#)
  メモ
- セルをマージするにあたりSPREADは隣り合うセルの一致するデータを調べマージ範囲を決定します。SPREADはこの処理をアプリケーションによってデータがこれ以上変更されないと考えられる時まで行いません。GetMergeCellおよびGetMergeCellsメソッドにてマージ範囲を取得できるのはページのライフサイクルの終盤、ページの表示(Page.PreRender)が完了してからです。Page.LoadイベントでGetMergeCellメソッドを使用してもマージ範囲を取得できませんが、Page.PreRenderCompleteでGetMergeCellメソッドを使用すると取得できます。
◎サンプルコード(VB)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.RowCount = 10
' テストデータの設定
FpSpread1.ActiveSheetView.Cells(0, 1).Value = "apple"
FpSpread1.ActiveSheetView.Cells(1, 1).Value = "apple"
FpSpread1.ActiveSheetView.Cells(2, 1).Value = "orange"
FpSpread1.ActiveSheetView.Cells(3, 1).Value = "pear"
FpSpread1.ActiveSheetView.Cells(4, 1).Value = "pear"
FpSpread1.ActiveSheetView.Cells(5, 1).Value = "pear"
' 2列目をマージ
FpSpread1.ActiveSheetView.SetColumnMerge(1, FarPoint.Web.Spread.Model.MergePolicy.Always)
End Sub
Protected Sub Page_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete
Dim arr As ArrayList
arr = FpSpread1.GetMergeCells(0, 1, 5, 1)
For Each cells As FarPoint.Web.Spread.Model.CellRange In arr
GetMergeRange(cells)
Next
End Sub
Private Sub GetMergeRange(ByVal cells As FarPoint.Web.Spread.Model.CellRange)
Dim row As Int32 = cells.Row
Dim col As Int32 = cells.Column
Dim rowCount As Int32 = cells.RowCount
Dim colCount As Int32 = cells.ColumnCount
Dim log As String = ""
log &= "Merged Range starts : (" & CStr(row) & "," & CStr(col) & ")" & System.Environment.NewLine
log &= ", RowCount: " & CStr(rowCount) & ", ColCount: " & CStr(colCount) & System.Environment.NewLine
Label1.Text += "<br>" + log
End Sub
If IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.RowCount = 10
' テストデータの設定
FpSpread1.ActiveSheetView.Cells(0, 1).Value = "apple"
FpSpread1.ActiveSheetView.Cells(1, 1).Value = "apple"
FpSpread1.ActiveSheetView.Cells(2, 1).Value = "orange"
FpSpread1.ActiveSheetView.Cells(3, 1).Value = "pear"
FpSpread1.ActiveSheetView.Cells(4, 1).Value = "pear"
FpSpread1.ActiveSheetView.Cells(5, 1).Value = "pear"
' 2列目をマージ
FpSpread1.ActiveSheetView.SetColumnMerge(1, FarPoint.Web.Spread.Model.MergePolicy.Always)
End Sub
Protected Sub Page_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete
Dim arr As ArrayList
arr = FpSpread1.GetMergeCells(0, 1, 5, 1)
For Each cells As FarPoint.Web.Spread.Model.CellRange In arr
GetMergeRange(cells)
Next
End Sub
Private Sub GetMergeRange(ByVal cells As FarPoint.Web.Spread.Model.CellRange)
Dim row As Int32 = cells.Row
Dim col As Int32 = cells.Column
Dim rowCount As Int32 = cells.RowCount
Dim colCount As Int32 = cells.ColumnCount
Dim log As String = ""
log &= "Merged Range starts : (" & CStr(row) & "," & CStr(col) & ")" & System.Environment.NewLine
log &= ", RowCount: " & CStr(rowCount) & ", ColCount: " & CStr(colCount) & System.Environment.NewLine
Label1.Text += "<br>" + log
End Sub
◎サンプルコード(C#)
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
FpSpread1.ActiveSheetView.RowCount = 10;
// テストデータの設定
FpSpread1.ActiveSheetView.Cells[0, 1].Value = "apple";
FpSpread1.ActiveSheetView.Cells[1, 1].Value = "apple";
FpSpread1.ActiveSheetView.Cells[2, 1].Value = "orange";
FpSpread1.ActiveSheetView.Cells[3, 1].Value = "pear";
FpSpread1.ActiveSheetView.Cells[4, 1].Value = "pear";
FpSpread1.ActiveSheetView.Cells[5, 1].Value = "pear";
// 2列目をマージ
FpSpread1.ActiveSheetView.SetColumnMerge(1, FarPoint.Web.Spread.Model.MergePolicy.Always);
}
protected void Page_PreRenderComplete(object sender, System.EventArgs e)
{
System.Collections.ArrayList arr = null;
arr = FpSpread1.GetMergeCells(0, 1, 5, 1);
foreach (FarPoint.Web.Spread.Model.CellRange cells in arr)
{
GetMergeRange(cells);
}
}
private void GetMergeRange(FarPoint.Web.Spread.Model.CellRange cells)
{
Int32 row = cells.Row;
Int32 col = cells.Column;
Int32 rowCount = cells.RowCount;
Int32 colCount = cells.ColumnCount;
string log = "";
log += "Merged Range starts : (" + Convert.ToString(row) + "," + Convert.ToString(col) + ")" + System.Environment.NewLine;
log += ", RowCount: " + Convert.ToString(rowCount) + ", ColCount: " + Convert.ToString(colCount) + System.Environment.NewLine;
Label1.Text += "<br>" + log;
}
{
if (Page.IsPostBack)
{
return;
}
FpSpread1.ActiveSheetView.RowCount = 10;
// テストデータの設定
FpSpread1.ActiveSheetView.Cells[0, 1].Value = "apple";
FpSpread1.ActiveSheetView.Cells[1, 1].Value = "apple";
FpSpread1.ActiveSheetView.Cells[2, 1].Value = "orange";
FpSpread1.ActiveSheetView.Cells[3, 1].Value = "pear";
FpSpread1.ActiveSheetView.Cells[4, 1].Value = "pear";
FpSpread1.ActiveSheetView.Cells[5, 1].Value = "pear";
// 2列目をマージ
FpSpread1.ActiveSheetView.SetColumnMerge(1, FarPoint.Web.Spread.Model.MergePolicy.Always);
}
protected void Page_PreRenderComplete(object sender, System.EventArgs e)
{
System.Collections.ArrayList arr = null;
arr = FpSpread1.GetMergeCells(0, 1, 5, 1);
foreach (FarPoint.Web.Spread.Model.CellRange cells in arr)
{
GetMergeRange(cells);
}
}
private void GetMergeRange(FarPoint.Web.Spread.Model.CellRange cells)
{
Int32 row = cells.Row;
Int32 col = cells.Column;
Int32 rowCount = cells.RowCount;
Int32 colCount = cells.ColumnCount;
string log = "";
log += "Merged Range starts : (" + Convert.ToString(row) + "," + Convert.ToString(col) + ")" + System.Environment.NewLine;
log += ", RowCount: " + Convert.ToString(rowCount) + ", ColCount: " + Convert.ToString(colCount) + System.Environment.NewLine;
Label1.Text += "<br>" + log;
}
キーワード
結合/マージ