データ入力方法とパフォーマンスの違い(WorkBook/Sheet)

文書番号 : 22210     文書種別 : 使用方法     最終更新日 : 2006/07/08
文書を印刷する
対象製品
El Tabelle for .NET 3.0J
詳細
WorkBook/Sheet コントロールはいくつかのデータ入力方法を備えています。どの方法を使用しても同じように入力や設定が可能ですが、パフォーマンスに違いがあります。ここでは高速な順にデータ入力方法を解説します。

1.データバウンド
 最も高速なデータ入力方式です。データベースエンジンを使用しない場合でも、DataSet を作成してこれにデータを入力しバウンドすることで大量のデータ入力にかかる時間を節約できます。

2.ValueBlock プロパティ
 ValueBlock プロパティを使うと、複数のセルに対して高速にデータを入力できます。このプロパティは配列を使用する知識が必要ですが、オブジェクトの作成を抑制できます。
 Dim strDataArray()() As String
 strDataArray = New String(1)() {}
 strDataArray(0) = New String(1) {"大阪", "日本橋"}
 Sheet1.CellRange = New GrapeCity.Win.ElTabelle.Range("A1:B1")
 Sheet1.ValueBlock = strDataArray

3.SetCellInfo メソッド
 この方式は後述する CellValue プロパティと同じ速度です。次のようなコーディングは Position 構造体の生成を伴うため、やや低速です。
 Sheet1.SetCellInfo(new GrapeCity.Win.ElTabelle.Position("A1"), _
   GrapeCity.Win.ElTabelle.CellInfo.Value, 10);

4.CellValue プロパティ
 この方式は SetCellInfo メソッドと同じ速度です。次のようなコーディングは Position 構造体の生成を伴うため、やや低速です。
 Sheet.CellPosition = New GrapeCity.Win.ElTabelle.Position("A1")
 Sheet.CellValue = 10

5.インデクサ
 最も低速なデータ入力方式です。Sheet1[0, 0].Value = 10 や Sheet1[1, 2].BackColor = Color.Azure といった書式はシンプルですが、毎回 Cell オブジェクトの生成を伴います。

その他のパフォーマンスの改善策として、Sheet.BeginUpdate/EndUpdate メソッドもしくは Sheet.Redraw プロパティによる再描画の抑制、数式の自動更新の停止などがあります。
キーワード
機能・仕様

この文書は、以前は次のFAQ IDで公開されていました : 9446