問題タブ [excel-automation]

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 投票する
2 に答える
943 参照

.net - Excel の自動化と実行時間の長いマクロの実行に関するフィードバック

私は、C# で Excel ワークブックを自動化するという最も恐ろしい仕事をしています。プロセスの一部は、実行に約 2 分かかるブック内のマクロを呼び出すことです。これはすべて Windows サービスで発生し、最初から最後まで問題なく実行されます。現在、マクロを呼び出す直前とマクロの実行が終了したときに、イベントをデータベース テーブルに書き込みます。マクロ コード内で多くの計算を行い、データをテキスト ファイルにエクスポートします。

非常に時間がかかるため、プロセスのさまざまな部分で通知を受け取ることができるかどうか、ユーザーから問い合わせがありました。

予約に関する私の最初の考えは、System.Timers.Timer を使用してマクロを実行している間に更新される Application.StatusBar を定期的にポーリングすることでした。これには何らかのスレッドの問題があるのではないかと思いました.StatusBarを取得するためのタイマーからの呼び出しがかなり長い時間(数十秒)返されない/完了しないために発生していると思います.

ワークブックを次のクラスにまとめて、Excel が正しく閉じられ、マクロが実行されるようにします。

次に、レポート処理クラスで次のネストされた/内部クラスを使用して監視を試みました。

これはすべて、ReportGeneratorProcess クラスで次のコードを実行することによってトリガーされます (不要なコードは省略しました)。

AddEvent は、メイン クラスを使用して新しいイベントをデータベースに追加するだけです。

現時点では、別の解決策/これを回避する良い方法を考えようとして、私は敗北したままです. ヒントはありますか?

残念ながら、プロセスはそのまま動作する必要があります。Excel から何かを移動する余地はありません。

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

c# - C# と Excel の自動化、CopyFromRecordset 関数の使用方法

SQL サーバーからのデータを Excel ファイルに入力しようとしていますが、

私のコードは次のとおりです。

次のエラーが表示されます

{"そのようなインターフェイスはサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))"}

リーダーを配列に変換する必要がありますか?