データ入力方法とパフォーマンスの違い(WorkBook/Sheet)
対象製品
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 プロパティによる再描画の抑制、数式の自動更新の停止などがあります。
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