1

Excel および .Net との相互運用が非常に遅いことは、よく知られているようです。値の配列をワークシート オブジェクトに一度にコピーできることは認識していますが、ストップウォッチによると、次のタイプのコマンド (VB.Net 内) が 1 つでもあります。

 WS.Range(--range string here--).Value = array

...0.3秒以上かかります!私のルーチンは各ワークシートに数十の配列を書き込み、ワークブックごとに複数のワークシートがあり、おそらく複数のワークブックも反復するため、これは合計されます。

不連続で長方形でないセルのグループを一度に書き込む方法があれば、1 つの書き込みコマンドで WS 全体を実行できます。しかし、「中間」セルの元の値を保持しながらそれを行う方法はないと思います。これらのワークブックは事前にフォーマットされているため、特定のセルをそのままにしておく必要があります。

これをスピードアップするためにできることはありますか?

4

2 に答える 2

2

上記のベンのコメントは、それをかなり釘付けにしました。エクセルの数式計算がボトルネックでした。.Net-Excel の相互運用性が遅いという評判は知っていたので安心しましたが、それほど遅いとは思いませんでし

于 2012-05-11T13:26:29.397 に答える
0

これが可能かどうかは正確にはわかりませんが、同じことを行うライブラリを調べます: NPOI。Excel文書の読み書きができます。これを使用すると、アプリケーションが大幅に高速化されました (xls から C# アプリへのデータの取得)

于 2012-05-11T13:31:19.487 に答える