問題タブ [custom-functions-excel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
124 参照

office-js - Excel カスタム関数のパフォーマンス - Excel online で自動セーフを無効にしますか?

Office JS アドインのカスタム関数を作成してテストしているときに、さまざまなプラットフォームのパフォーマンスを測定したところ、まったく異なる結果が得られました。改善する機会を探しています。特に、Office オンラインで自動保存を無効にすることができるかどうか、または無効にする方法を知りたいです。これが、少なくとも 1 つの問題の原因になっているようです。

主な問題は次の 2 つです。

  • Windows版のExcel Desktopはかなり遅い
  • Excel Online は大量の関数をサポートしていません

そのため、関数が多すぎると、オンラインの Excel がクラッシュすることさえあります。セーフしようとすると、サーバーへの通信が停止し、サーバーに接続できないというメッセージが表示されます。

を使用して Excel の動作をテストしました。

  • 現在の日時値を返すだけの非常に単純な関数
  • Web サーバーで計算された情報を取得する、より複雑な関数

したがって、テストするシナリオに応じて、結果は同じです。より複雑なシナリオでは、Excel オンラインは約 50,000 個の数式で終了し、単純なシナリオでは、50,000 ~ 100,000 個の数式の間で終了します。

パフォーマンスに関しては、Excel オンラインが実行されている限り、MAC 上の Excel と同じくらい高速であり、Windows の Excel デスクトップの 2 倍の速さです。言うまでもなく、COM や VBA でさえ、実行時に Javascript を追加するよりもはるかに高速です。

自動セーフを無効にする方法はありますか、それとも Excel online と Office JS テクノロジを使用してこのような大きなワークシートを実行しようとするのは間違っているのでしょうか? COM テクノロジを使用して、そのようなことを行う必要がありますか? JS アドインの互換性が本当に気に入っています...