PowerTools SPREAD for Windows Forms 8.0J
シートモデルの概要

次の図は、シートが保持するモデルを概念的に表しています。

モデル相関図

図が示すように、シートのデータ領域は、固有のモデルセットをもちます。そして、行ヘッダや列ヘッダ、シートコーナーも、それぞれ、固有のモデルをもちます。

以下、モデルの種類です。シート(SheetView クラス)は、これらのモデルの複合体と考えることができます。

Dataモデル シートのデータ(セルの値、数式、タグ、セルノートなど)に関わる操作を処理します。また、シートのデータも格納します。
Axisモデル シートの行と列に関わる操作(行の高さや列幅、行および列の非表示など)を処理します。
Selectionモデル シート内の選択範囲に関する操作を処理します。
Spanモデル シート内のセルの結合に関する操作を処理します。
Styleモデル シートのセルの外観に関わる設定(背景色、フォント、セル型など)を処理します。

モデルを使用しないで、SPREADデザイナや、シートのCellsColumnsRows プロパティを介して、セル、列、行のオブジェクトを設定できます。しかし、これらはモデルにもとづいたオブジェクトです。そのため、通常はシートのプロパティを介して各オブジェクトを設定するよりも、モデルを使用したほうが高速です。たとえば次のように、コードでCellsオブジェクトを使用して値を設定する場合を考えます。

C#
コードのコピー
fpSpread1.Sheets[0].Cells[0,0].Value = "Test";
Visual Basic
コードのコピー
FpSpread1.Sheets(0).Cells(0,0).Value = "Test"

これを、基本のデータモデルのメソッドを使用すると、次のようになります。

C#
コードのコピー
fpSpread1.Sheets[0].Models.Data.SetValue(fpSpread1.Sheets[0].GetModelRowFromViewRow(0), fpSpread1.Sheets[0].GetModelColumnFromViewColumn(0), "Test");
Visual Basic
コードのコピー
FpSpread1.Sheets(0).Models.Data.SetValue(FpSpread1.Sheets(0).GetModelRowFromViewRow(0), FpSpread1.Sheets(0).GetModelColumnFromViewColumn(0), "Test")

モデルに対して行ったすべての操作はシートに自動的に反映され、シートで変更可能なほとんどの属性は、モデルにも反映されます。これは、CellRow、および Columnの各オブジェクトに対する設定でも同様です。これらのオブジェクトに対して行ったほとんどの変更は、対応するシートモデルの各設定にも自動的に反映され、その逆も同様です。データモデルに列を追加すると、これらの列がシートに追加されます。これは、引数の場合も同様です。たとえば、データモデルの GetValueおよびSetValueメソッドのrowおよびcolumn引数は、シートで並べ替えを実行していない限り、シートの行および列インデックスと同じです。

FarPoint.Win.Spread名前空間のすべての要素が、モデルに存在するわけではありません。たとえば、シートタブ、シートの背景色、グリッド線などのコントロール全体に関する属性には、モデルには含まれないものもあります。しかし、特定のセルについての関連情報(セル内のデータおよびセルの外観についての情報)は、モデルに含まれます。

関連トピック

 

 


© 2004-2015, GrapeCity inc. All rights reserved.