シートをコピーする方法

文書番号 : 38903     文書種別 : 使用方法     登録日 : 2015/06/29     最終更新日 : 2015/06/29
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
FarPoint.Win.Serializer クラスの機能を利用することで、シートのコピーを行うことができます。以下のサンプルコードのように、コピーしたいシートをGetObjectXml メソッドにてシリアライズ化し、SetObjectXmlメソッドにて逆シリアライズ化します。数式を含むシートをコピーする場合には、シートの追加後にLoadFormulasメソッドを呼び出すことで、新しいシートでも数式が有効になります。

◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim bc As New FarPoint.Win.Spread.CellType.ButtonCellType
  bc.Text = "Click!"
  FpSpread1.ActiveSheet.Cells(1, 0).CellType = bc
  FpSpread1.Sheets(0).Cells(1, 1).Value = "test"
  FpSpread1.Sheets(0).Cells(1, 1).BackColor = Color.LavenderBlush
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim NewSheet As New FarPoint.Win.Spread.SheetView
  FarPoint.Win.Serializer.SetObjectXml(DirectCast(NewSheet, FarPoint.Win.ISerializeSupport), FarPoint.Win.Serializer.GetObjectXml(DirectCast(FpSpread1.Sheets(0), FarPoint.Win.ISerializeSupport), "temp"), "temp")
  NewSheet.SheetName = "NewSheet"
  FpSpread1.Sheets.Add(NewSheet)
  FpSpread1.LoadFormulas(False)
End Sub


◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
  FarPoint.Win.Spread.CellType.ButtonCellType bc = new FarPoint.Win.Spread.CellType.ButtonCellType();
  bc.Text = "Click!";
  fpSpread1.ActiveSheet.Cells[1, 0].CellType = bc;
  fpSpread1.ActiveSheet.Cells[1, 1].Value = "test";
  fpSpread1.ActiveSheet.Cells[1, 1].BackColor = Color.LavenderBlush;
}

private void button1_Click(object sender, EventArgs e)
{
  FarPoint.Win.Spread.SheetView NewSheet = new FarPoint.Win.Spread.SheetView();
  FarPoint.Win.Serializer.SetObjectXml((FarPoint.Win.ISerializeSupport)NewSheet, FarPoint.Win.Serializer.GetObjectXml((FarPoint.Win.ISerializeSupport)fpSpread1.ActiveSheet, "temp"), "temp");
  NewSheet.SheetName = "NewSheet";
  fpSpread1.Sheets.Add(NewSheet);
  fpSpread1.LoadFormulas(false);
}