データ入力方法とパフォーマンスの違い
対象製品
El Tabelle Sheet 4.0J
詳細
El Tabelle Sheet 4.0J はいくつかのデータ入力方法を備えています。どの方法を使用しても同じように入力や設定が可能ですが、パフォーマンスに違いがあります。ここでは高速な順にデータ入力方法を解説します。
1.データバウンド
最も高速なデータ入力方式です。データベースエンジンを使用しない場合でも、DataSet を作成してこれにデータを入力しバウンドすることで大量のデータ入力にかかる時間を節約できます。
2.ValueBlock プロパティ
ValueBlock プロパティを使うと、複数のセルに対して高速にデータを入力できます。このプロパティは配列を使用する知識が必要ですが、オブジェクトの作成を抑制できます。ValueBlock プロパティはシート、列、行のいずれかのオブジェクトからアクセスできます。
Sheet1.Rows(0).ValueBlock = New Object() {10, 20, 30}
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 プロパティによる再描画の抑制。Sheet.VirtualMode プロパティによる仮想モードの使用、数式の自動更新の停止などがあります。
1.データバウンド
最も高速なデータ入力方式です。データベースエンジンを使用しない場合でも、DataSet を作成してこれにデータを入力しバウンドすることで大量のデータ入力にかかる時間を節約できます。
2.ValueBlock プロパティ
ValueBlock プロパティを使うと、複数のセルに対して高速にデータを入力できます。このプロパティは配列を使用する知識が必要ですが、オブジェクトの作成を抑制できます。ValueBlock プロパティはシート、列、行のいずれかのオブジェクトからアクセスできます。
Sheet1.Rows(0).ValueBlock = New Object() {10, 20, 30}
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 プロパティによる再描画の抑制。Sheet.VirtualMode プロパティによる仮想モードの使用、数式の自動更新の停止などがあります。
キーワード
HowTo
この文書は、以前は次のFAQ IDで公開されていました : 8739