2016-09-29 6 views
0

特定のスプレッドシートから関数の入力を取得するために、xlwingsライブラリを使用するPythonスクリプトを作成しました。私がExcelからこのコードを実行することを考えています(xlwingsモジュールをVBAモジュールとしてインポートしています)。私はこれをExcelのVBAでRunPythonコマンドを使って実行するか、PyCharmでスクリプトを実行するときにMock Callerを設定して、関数の入力を簡単にすることができます。(xlwings RunPython経由で)PythonをExcelから呼び出すランタイムを改善できますか?

この設定は正常に動作し、PyCharmでスクリプトを実行すると平均で約2秒かかります。しかし、Excelから実行すると、平均で約30秒かかります(データ入力の同じセットが両方の場合)。

ExcelがPythonを呼び出すのにかかる時間は比較的重要です。これをスピードアップする方法についてアドバイスがありますか?これはExcelからPythonを実行するのにどれくらいの時間がかかりますか?事前に

おかげ

答えて

0

は現在、xlwingsのデフォルトの動作では、RunPythonを呼び出す新しいインタプリタセッション毎回を起動することです。現代のシステムでは、見るよりも通常2-3秒ほど遅れていますが、これは自然にオーバーヘッドになります。
Windowsでは、OPTIMIZED_CONNECTION = TrueをVBA設定に切り替えることができます。これは、呼び出しの間に実行され続けるCOMサーバーを使用します。その詳細については、docsを参照してください。

関連する問題