数式を含んだSheetのWorkBookへの追加に時間がかかる場合がある
対象製品
El Tabelle Sheet 4.0J
発生環境
この現象は、次のファイルバージョンのアセンブリで発生します。
v4.0.2008.1215 および以前のアセンブリ
v4.0.2008.1215 および以前のアセンブリ
状況
修正済み
詳細
大量に数式が設定されている複数のSheetをWorkBookへ追加する場合、2個目以降のSheetの追加に非常に時間がかかります。例えば、大量に数式が設定されているXMLファイルをSheetに読み込んでWorkBookに追加すると、2個目以降の追加時間が遅くなります。
回避方法
この現象は、ファイル バージョン v4.0.2009.0401 以降のアセンブリで改善されています。v4.0.2009.0401 のホットフィックス(HotFix)は、こちらから取得できます。
なお、WorkBookにSheetを追加してから追加したSheetに設定するのではなく、Sheetに数式を設定してからそのSheetをWorkBookに設定する方が効率的です。
例えば、以下の例ではBの方法が効率的です。
[VB]
WorkBook1.BeginUpdate()
WorkBook1.AutoCalculate = False
For i As Integer = 0 To 2
''A WorkBookに最初にSheetを追加する
'WorkBook1.Sheets.Add(New Sheet())
'WorkBook1.Sheets(i).LoadXml("....サンプル.xml")
'B:Sheetを最初に作成してからWorkBookに追加する
Dim sheet As Sheet = New Sheet()
sheet.AutoCalculate = False
sheet.LoadXml("....サンプル.xml")
WorkBook1.Sheets.Add(sheet)
Next
WorkBook1.AutoCalculate = True
WorkBook1.EndUpdate()
なお、WorkBookにSheetを追加してから追加したSheetに設定するのではなく、Sheetに数式を設定してからそのSheetをWorkBookに設定する方が効率的です。
例えば、以下の例ではBの方法が効率的です。
[VB]
WorkBook1.BeginUpdate()
WorkBook1.AutoCalculate = False
For i As Integer = 0 To 2
''A WorkBookに最初にSheetを追加する
'WorkBook1.Sheets.Add(New Sheet())
'WorkBook1.Sheets(i).LoadXml("....サンプル.xml")
'B:Sheetを最初に作成してからWorkBookに追加する
Dim sheet As Sheet = New Sheet()
sheet.AutoCalculate = False
sheet.LoadXml("....サンプル.xml")
WorkBook1.Sheets.Add(sheet)
Next
WorkBook1.AutoCalculate = True
WorkBook1.EndUpdate()
キーワード
ETSH07284
この文書は、以前は次のバグレポートIDで公開されていました : 7937