シート上の行情報(行高、スタイル、データなど)を任意の行にコピーする方法

文書番号 : 38975     文書種別 : 使用方法     登録日 : 2015/07/02     最終更新日 : 2015/07/02
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
SPREADコントロールからは以下のオブジェクトモデルが提供されています。

◎Axisモデル(DefaultSheetAxisModelクラス)
  列と行に関する各機能を提供(行高、列幅など)
◎Dataモデル(DefaultSheetDataModelクラス)
  コントロールに関するデータを提供
◎Selectionモデル(DefaultSheetSelectionModelクラス)
  選択に関する動作や対話機能を提供
◎Spanモデル(DefaultSheetSpanModelクラス)
  セル結合に関する機能を提供します
◎Styleモデル(DefaultSheetStyleModelクラス)
  セルスタイルを提供します(背景色、罫線など)


例えば1行目の全ての情報を任意の行にコピーしたい(※)場合は、上記クラスメンバであるCopyメソッド呼び出しを行うことで容易に実現することが出来ます。各モデル、クラス、およびクラスメンバの詳細については製品ヘルプをご参照ください。(※デザイナ上での行コピーを行うことは出来ません)

以下のサンプルコードでは行(0)から行(5)へのコピー処理を実現しています。この実装により、例えば各クラスのCopyメソッドを適宜コメントアウトすることで、各属性がどのモデルによって管理されているかを確認することも出来ます。

◎サンプルコード(VB)
Imports FarPoint.Win
Imports FarPoint.Win.Spread
Imports FarPoint.Win.Spread.Model
Imports FarPoint.Win.Spread.CellType


  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    '--------------------------------
    '(1)行高,列幅
    '--------------------------------

    FpSpread1.ActiveSheet.Rows(0).Height = 40
    FpSpread1.ActiveSheet.Columns(1).Width = 150
    '--------------------------------
    '(2)背景色,罫線,配置
    '--------------------------------

    FpSpread1.ActiveSheet.Cells(0, 0).BackColor = Color.Red
    FpSpread1.ActiveSheet.Cells(0, 2).Border = New BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue)
    FpSpread1.ActiveSheet.Cells(0, 3).BackColor = Color.Yellow
    FpSpread1.ActiveSheet.Rows(0).VerticalAlignment = CellVerticalAlignment.Center
    '--------------------------------
    '(3)型,データ
    '--------------------------------

    Dim cb As New ComboBoxCellType
    cb.Items = New String() {"aa", "bb"}
    FpSpread1.ActiveSheet.Cells(0, 1).CellType = cb
    FpSpread1.ActiveSheet.Cells(0, 0).Text = "赤"
    FpSpread1.ActiveSheet.Cells(0, 1).Text = "aa"
    FpSpread1.ActiveSheet.Cells(0, 2).Text = "罫線設定"
    FpSpread1.ActiveSheet.Cells(0, 3).Text = "結合セル"
    '--------------------------------
    '(4)結合
    '--------------------------------

    FpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2)
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    '===============================
    '(1)Axisモデルによるコピー
    '===============================

    Dim AxisModel As New DefaultSheetAxisModel     AxisModel = CType(FpSpread1.ActiveSheet.Models.RowAxis, DefaultSheetAxisModel)
    AxisModel.Copy(0, 5, 1)
    '===============================
    '(2)Styleモデルによるコピー
    '===============================

    Dim StyleModel As New DefaultSheetStyleModel     StyleModel = CType(FpSpread1.ActiveSheet.Models.Style, DefaultSheetStyleModel)
    StyleModel.Copy(0, -1, 5, -1, 1, -1)
    '===============================
    '(3)Dataモデルによるコピー
    '===============================

    Dim DataModel As New DefaultSheetDataModel     DataModel = CType(FpSpread1.ActiveSheet.Models.Data, DefaultSheetDataModel)
    DataModel.Copy(0, -1, 5, -1, 1, -1)
    '===============================
    '(4)Spanモデルによるコピー
    '===============================

    Dim SpanModel As New DefaultSheetSpanModel     SpanModel = CType(FpSpread1.ActiveSheet.Models.Span, DefaultSheetSpanModel)
    SpanModel.Copy(0, -1, 5, -1, 1, -1)

  End Sub


◎サンプルコード(C#)
using FarPoint.Win;
using FarPoint.Win.Spread;
using FarPoint.Win.Spread.Model;
using FarPoint.Win.Spread.CellType;


  private void Form1_Load(object sender, System.EventArgs e)
  {
    //--------------------------------
    //(1)行高,列幅
    //--------------------------------

    fpSpread1.ActiveSheet.Rows[0].Height = 40;
    fpSpread1.ActiveSheet.Columns[1].Width = 150;
    //--------------------------------
    //(2)背景色,罫線,配置
    //--------------------------------

    fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Red;
    fpSpread1.ActiveSheet.Cells[0, 2].Border = new BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue);
    fpSpread1.ActiveSheet.Cells[0, 3].BackColor = Color.Yellow;
    fpSpread1.ActiveSheet.Rows[0].VerticalAlignment = CellVerticalAlignment.Center;
    //--------------------------------
    //(3)型,データ
    //--------------------------------

    ComboBoxCellType cb = new ComboBoxCellType();
    cb.Items = new string[] {"aa", "bb"};
    fpSpread1.ActiveSheet.Cells[0, 1].CellType = cb;
    fpSpread1.ActiveSheet.Cells[0, 0].Text = "赤";
    fpSpread1.ActiveSheet.Cells[0, 1].Text = "aa";
    fpSpread1.ActiveSheet.Cells[0, 2].Text = "罫線設定";
    fpSpread1.ActiveSheet.Cells[0, 3].Text = "結合セル";
    //--------------------------------
    //(4)結合
    //--------------------------------

    fpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2);
  }

  private void button1_Click(object sender, System.EventArgs e)
  {
  //===============================
  //(1)Axisモデルによるコピー
  //===============================

  DefaultSheetAxisModel AxisModel = new DefaultSheetAxisModel();
  AxisModel = (DefaultSheetAxisModel)fpSpread1.ActiveSheet.Models.RowAxis;
  AxisModel.Copy(0, 5, 1);
  //===============================
  //(2)Styleモデルによるコピー
  //===============================

  DefaultSheetStyleModel StyleModel = new DefaultSheetStyleModel();
  StyleModel = (DefaultSheetStyleModel)fpSpread1.ActiveSheet.Models.Style;
  StyleModel.Copy(0, -1, 5, -1, 1, -1);
  //===============================
  //(3)Dataモデルによるコピー
  //===============================

  DefaultSheetDataModel DataModel = new DefaultSheetDataModel();
  DataModel = (DefaultSheetDataModel)fpSpread1.ActiveSheet.Models.Data;
  DataModel.Copy(0, -1, 5, -1, 1, -1);
  //===============================
  //(4)Spanモデルによるコピー
  //===============================

  DefaultSheetSpanModel SpanModel = new DefaultSheetSpanModel();
  SpanModel = (DefaultSheetSpanModel)fpSpread1.ActiveSheet.Models.Span;
  SpanModel.Copy(0, -1, 5, -1, 1, -1);
  }