Excel表生成処理を更に高速に:[順序処理] キーワード

[高速生成エンジンを使いますか?]「はい」に設定することにより、
Excel表生成手順の処理速度が、Microsoft Excel で開いて処理するより30倍以上
高速になること。皆様、実感を持ってご存知かと思います。

高速生成エンジンを使っても、まだ遅いと思われる処理に関しましては、
生成用制御シートのキーワードである、[順序処理] キーワードの使用もご検討ください。

f:id:xoblos:20180617123046p:plain


[順序処理] キーワードは、縦に行を生成していく多くのケースに適用できますので、
使用できない場合の制約事項(後述記載)を参考にして使用してみてください。100倍以上の高速化の効果が出ることもあります。

最近のユーザーサポート事例では、分類項目が「大分類」、「中分類」、「詳細行」
の3階層で約12万行ある入力データから、分類のセル結合処理を施したレポートを作成する処理が10秒で完了しました。[順序処理] キーワードを入れないと40分以上はかかっていた処理です。

[順序処理] キーワードが使える場合と使えない場合(xoBlos 開発エンジニアより)

順次処理=yesは技術講習会でも必ず取り上げる高速化手法です。

区分がDataシート固定だけのImportは極めて高速になるのはご存じと思います。これはImporterが全く別のモードで動作するからです。
順序処理=yesはたとえ分類系があっても、Dataだけと同じモードで動作していいよとxoBlosに送るヒントです。

順序処理=yesが意味を成すのは以下の条件のときです。

  1. 追加入力セクションがない。
  2. 見出し系(「大見出し」、「見出し」などの見出し項目)がない。
  3. スキップ行の指定がない。
  4. 塗りつぶし、加減算、表示形式使用、日時指定、通貨指定、空データの上書き禁止がない。(あっても、実質指定されてなければOK)
  5. 条件塗りつぶしがない。
  6. 帳票印刷指定がない。
  7. 値確定セルがない。

以上の条件を満たさないと、たとえ順序処理=yesと指定しても、高速動作にはなりません。 (ヒントである所以です)

ただし、入力のXMLの順序で、分類系のキーが正しくまとまっている必要があります。(内部の並べ替えでもOKです)

キーでまとまっていれば、必ずしもソートされている必要はありません。
分類系のキーが正しくまとまってなくても、実行はされますし、エラーにはなりません。(可能な限りのセル結合は行います)

高度選択条件やシート分割も使えます。変換入力も使えます。

但し、分類系のプリセット(値を事前に設定しておく)は使えません。
順序処理=yesでは、分類系を指定できるので、当然セル結合も可能です。


順序処理=yesではないですが、区分がDataだけのときの高速処理は、1レコードで複数行になるものも問題なく高速動作になります。(意外に知られていませんが)