MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > シート > シートのコピーと挿入 |
同一のコントロール、またはフォーム上の別のコントロールに、シートをコピーおよび挿入できます。シートをコピーするための組み込みの機能はありませんが、以下のコードを使用して、独自のCopySheetメソッドを簡単に作成できます。詳細については、「[新しいスタイル]シートをコピーする方法」をご参考ください。
あるいは、独自のカスタム CopySheet メソッドを作成して、シートをコピーすることもできます。このような場合は、コピーしたシートをコントロールに挿入するには、CopySheetメソッドを呼び出した後に、FpSpreadクラスのSheetsプロパティが参照するSheetViewCollectionクラスのAddまたはInsertメソッドを使用します。
LegacyBehaviorsプロパティがStyleを含む場合に有効です。 |
次のサンプルコードは、CopySheetメソッドを作成します。
C# |
コードのコピー
|
---|---|
public FarPoint.Win.Spread.SheetView CopySheet(FarPoint.Win.Spread.SheetView sheet) { FarPoint.Win.Spread.SheetView newSheet = null; if (sheet != null ) { newSheet = FarPoint.Win.Serializer.LoadObjectXml(GetType(FarPoint.Win.Spread.SheetView), FarPoint.Win.Serializer.GetObjectXml(sheet, "CopySheet"), "CopySheet"); } return newSheet; } |
Visual Basic |
コードのコピー
|
---|---|
Public Function CopySheet(sheet As FarPoint.Win.Spread.SheetView) As FarPoint.Win.Spread.SheetView Dim newSheet as FarPoint.Win.Spread.SheetView = Nothing If Not IsNothing(sheet) Then newSheet = FarPoint.Win.Serializer.LoadObjectXml(GetType(FarPoint.Win.Spread.SheetView), FarPoint.Win.Serializer.GetObjectXml(sheet, "CopySheet"), "CopySheet") End If Return newSheet |
|
コピーしたシートをコントロールに挿入するには、CopySheetメソッドを呼び出した後に、FpSpreadクラスのSheetsプロパティが参照するSheetViewCollectionクラスのAddまたはInsertメソッドを使用します。
SPREADデザイナのシートタブアイコンを右クリックすると、[コピー]、[切り取り]、および[貼り付け]コンテキストメニューが表示され、設計時にシートのコピーおよび貼り付けを行えます。
Spread では、セル数式を含むシートをコピーできます。これを行うには、IWorksheets インターフェースの Copy メソッドを使用します。このメソッドを使用すると、セルのコピー先と参照シートの両方を同時にコピーし、コピーされした複数のシート内に参照がを作成できます。
コードの使用
次のサンプル コードは、数式を含むシートをコピーする方法を示しています。
C# |
コードのコピー
|
---|---|
var sheet2 = fpSpread1.AsWorkbook().Worksheets.Add(); sheet2.ColumnHeader.RowCount = 2; sheet2.ColumnHeader.Cells["A1"].Value = 5; sheet2.Cells["A1"].Value = 4; IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet; TestActiveSheet.Cells[0, 0].Formula = "Sum(Sheet2!A1,A2)"; TestActiveSheet.Cells[0, 1].Formula = "Sheet1[#Headers,[A1]]"; fpSpread1.AsWorkbook().Worksheets[0, 1].Copy(0); |
Visual Basic |
コードのコピー
|
---|---|
Dim sheet2 = fpSpread1.AsWorkbook().Worksheets.Add() sheet2.ColumnHeader.RowCount = 2 sheet2.ColumnHeader.Cells("A1").Value = 5 sheet2.Cells("A1").Value = 4 Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet TestActiveSheet.Cells(0, 0).Formula = "Sum(Sheet2!A1,A2)" TestActiveSheet.Cells(0, 1).Formula = "Sheet1[#Headers,[A1]]" fpSpread1.AsWorkbook().Worksheets(0, 1).Copy(0) |
UIを使用した数式を含んだシートのコピー
UIを使用してセル数式を含むシートと参照シートをコピーするには、次の手順に従います。
C# |
コードのコピー
|
---|---|
fpSpread1.Width = 800; fpSpread1.TabStripRatio = 0.8f; fpSpread1.TabStrip.Editable = true; var sheet2 = fpSpread1.AsWorkbook().Worksheets.Add(); sheet2.ColumnHeader.RowCount = 2; sheet2.ColumnHeader.Cells["A1"].Value = 5; sheet2.Cells["A1"].Value = 4; IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet; TestActiveSheet.Cells[0, 0].Formula = "Sum(Sheet2!A1,A2)"; TestActiveSheet.Cells[0, 1].Formula = "Sheet2[#Headers,[A1]]"; |
Visual Basic |
コードのコピー
|
---|---|
fpSpread1.Width = 800 fpSpread1.TabStripRatio = 0.8F fpSpread1.TabStrip.Editable = True Dim sheet2 = fpSpread1.AsWorkbook().Worksheets.Add() sheet2.ColumnHeader.RowCount = 2 sheet2.ColumnHeader.Cells("A1").Value = 5 sheet2.Cells("A1").Value = 4 Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet TestActiveSheet.Cells(0, 0).Formula = "Sum(Sheet2!A1,A2)" TestActiveSheet.Cells(0, 1).Formula = "Sheet2[#Headers,[A1]]" |