2

SQL 2000/5 とやり取りしてかなり複雑な数理計算を処理する Excel 2002/XP ベースのアプリケーションがあります。アプリケーションはその機能を適切に実行しますが、管理が困難です。

Excel のこれらのさまざまなインスタンス (開始/停止/処理コマンドなど) を管理および監視できる "コントローラー" アプリケーションまたはサービスを作成しようとしていますが、残念ながら InterOp の悪夢のようなものです。

VB.Net または C# でこのようなことを行う良い (つまり、動作する) 例はありますか?

4

4 に答える 4

3

しないでください!

私たちはそのようなものを機能させるために何週間も試みましたが、それは単に宣伝どおりに動作しません。始めないでください-すぐに諦めましょう!

あなたが実際に持っている唯一のオプションは、重いサーバー側のMOSSベースの実装-Excel(Web)サービス(彼らはそれをそのようなものと呼んでいます)です。WindowsベースのCOMExcel相互運用機能はほとんど機能しておらず、MOSSに置き換えられます。

もう1つのオプションは、SpreadsheetGearを使用することです。それは実際には素晴らしい製品です

  1. あっという間に速い
  2. エンジンはUIとは別のものであるため、Excelサーバー側(オフィスがインストールされていない場合)で実行できます。
  3. かなり安い
  4. 既存のExcelCOMAPIと同様のAPIを備えているため、コードを移動するのは比較的簡単です。

それはすべて、スプレッドシートに必要な数式によって異なります。Spreadsheet Gearの数式リストを確認し、一致するものがある場合はそれを選択してください。

于 2008-09-18T08:01:33.403 に答える
2

相互運用性は正常に機能しますが、解放されていない Excel オブジェクトへの参照が常に発生するため、Excel インスタンスが閉じられません。次の KB 記事では、その理由について説明しています。

http://support.microsoft.com/default.aspx/kb/317109/EN-US/

限られた一連の相互運用シナリオ用に非常に慎重にコードを記述していれば、この問題を回避できます。しかし、一般的なケースでは、確実に動作させることは非常に困難です。

于 2008-09-26T22:05:23.180 に答える
1

この製品をご覧になることをお勧めします:http ://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

それはすべてマネージコードと直接の.NETライブラリです。InterOpの頭痛の種はありません。自分で使ったことはありませんが、金融業界の人からはとてもいいことを聞いています。

于 2008-09-18T01:24:12.033 に答える
1

Excel 2003 の 1 つのインスタンスを制御するサービスを作成しました。Excel インスタンスを完全に閉じることができなかったので、サービスが最初にアクセスされたときに 1 つのインスタンスを開始し、それのみを使用して、クライアント要求をシリアル化します。

于 2008-09-18T12:35:20.237 に答える