5

比較的大量の Word 出力を生成するアプリケーションに取り組んでいます。現在、ドキュメントの作成には Word Interop サービスを使用していますが、特に古い (2007 年より前の) バージョンの Office では非常に時間がかかります。生成を高速化したいと考えています。

私はまだ多くのプロファイリングを行っていませんが、大量の COM 呼び出しを行っていることが問題であると確信しています。プロファイリングによって、他の呼び出しよりも遅い呼び出しのサブセットが得られることを願っていますが、私の直感では、おそらくいくつかの遅い呼び出しではなく、COM オーバーヘッド (または Word Interop オーバーヘッド) の問題であることがわかります。

また、この製品は HTML 出力を生成でき、そのプロセスは (a) 非常に高速であり、(b) HTML 固有の機能のサブクラスが異なるだけで、ほとんど同じコードパスを使用します。したがって、私たちのアルゴリズムが根本的に遅いわけではないと確信しています。

だから... Word ファイルの生成を高速化するための代替方法の提案を探しています。

生成された HTML ファイルの名前を .doc に変更したり、代わりに RTF を生成したりすることはできません。どちらの場合も、重要な書式設定情報が失われます。RTF の場合、インライン グラフィックは確実に機能しません。

私たちが評価しているアプローチの 1 つは、フラット ファイルを使用して必要な出力を作成する方法を知っているマクロを含むテンプレートから (相互運用機能を介して) プログラムで Word ファイルを生成して開くことです。私たちは、そのアプローチに関するフィードバック、および物事をスピードアップするためのその他のアイデアに関心があります。

4

2 に答える 2

5

余裕があれば、Aspose.Words 製品をお勧めします。非常に高速で、Word をインストールする必要はありません。

また、オフィスの相互運用性よりもはるかに使いやすいです。

于 2009-12-07T22:42:16.817 に答える
1

あなたのマクロ アプローチは、まさに私たちが遅い Excel 相互運用を高速化した方法です (バージョン 2003 を使用していると思います)。

(少なくとも Excel では) 速度低下の多くは、相互運用機能を介した個々の呼び出しの繰り返しによるものであることがわかりました。コマンドをまとめ始め (つまり、大きな範囲をフォーマットし、各セルを個別にフォーマットするのではなく、必要に応じて特定のセルを変更する)、論理的にマクロに移行しました。

マクロ + テンプレート アプローチは喜んで翻訳されると思います。

于 2009-12-07T22:44:35.987 に答える