PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > シートモデル > シートモデルの概要 |
次の図は、シートが保持するモデルを概念的に表しています。
図が示すように、シートのデータ領域は、固有のモデルセットをもちます。そして、行ヘッダや列ヘッダ、シートコーナーも、それぞれ、固有のモデルをもちます。
以下、モデルの種類です。シート(SheetView クラス)は、これらのモデルの複合体と考えることができます。
Dataモデル | シートのデータ(セルの値、数式、タグ、セルノートなど)に関わる操作を処理します。また、シートのデータも格納します。 |
Axisモデル | シートの行と列に関わる操作(行の高さや列幅、行および列の非表示など)を処理します。 |
Selectionモデル | シート内の選択範囲に関する操作を処理します。 |
Spanモデル | シート内のセルの結合に関する操作を処理します。 |
Styleモデル | シートのセルの外観に関わる設定(背景色、フォント、セル型など)を処理します。 |
モデルを使用しないで、SPREADデザイナや、シートのCells、Columns、Rows プロパティを介して、セル、列、行のオブジェクトを設定できます。しかし、これらはモデルにもとづいたオブジェクトです。そのため、通常はシートのプロパティを介して各オブジェクトを設定するよりも、モデルを使用したほうが高速です。たとえば次のように、コードで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")
|
モデルに対して行ったすべての操作はシートに自動的に反映され、シートで変更可能なほとんどの属性は、モデルにも反映されます。これは、Cell、Row、および Columnの各オブジェクトに対する設定でも同様です。これらのオブジェクトに対して行ったほとんどの変更は、対応するシートモデルの各設定にも自動的に反映され、その逆も同様です。データモデルに列を追加すると、これらの列がシートに追加されます。これは、引数の場合も同様です。たとえば、データモデルの GetValueおよびSetValueメソッドのrowおよびcolumn引数は、シートで並べ替えを実行していない限り、シートの行および列インデックスと同じです。
FarPoint.Win.Spread名前空間のすべての要素が、モデルに存在するわけではありません。たとえば、シートタブ、シートの背景色、グリッド線などのコントロール全体に関する属性には、モデルには含まれないものもあります。しかし、特定のセルについての関連情報(セル内のデータおよびセルの外観についての情報)は、モデルに含まれます。