Hat jemand ein gutes Beispiel für die Steuerung mehrerer Excel-Instanzen von einem .NET-app?

StackOverflow https://stackoverflow.com/questions/87576

  •  01-07-2019
  •  | 
  •  

Frage

Wir haben eine Excel 2002 / XP-basierte Anwendung, die mit SQL 2000/5 in Wechselwirkung tritt ziemlich komplexe versicherungsmathematischen Berechnungen zu verarbeiten. Die Anwendung führt seine Funktion gut, aber es ist schwer zu verwalten.

Wir versuchen, einen „Controller“ Anwendung oder einen Dienst zu erstellen, die diese verschiedenen Instanzen von Excel verwalten und überwachen können (Start / Stopp / Prozessbefehle usw.), aber es ist ein bisschen ein InterOp Alptraum leider.

Hat jemand ein gutes (das heißt in Betrieb) Beispiel in VB.Net oder C # so etwas wie dies zu tun?

War es hilfreich?

Lösung

Tun Sie es nicht!

Wir haben versucht, für Wochen, so etwas zu bekommen, zu arbeiten und es einfach verhält sich nicht wie beworben. Noch nicht einmal starten - aufgeben sofort

Die einzigen Optionen, die Sie wirklich haben, ist eine schwere serverseitige MOSS-basierte Implementierung - Excel (Web) Services (sie nennen es so ähnlich). Windows-basiert COM Excel Interop ziemlich tot ist und wird durch MOSS ersetzt werden.

Die andere Option ist SpreadsheetGear zu verwenden. Es ist eigentlich ein fantastisches Produkt,

  1. Es ist lightlingly schnell
  2. Der Motor ist von der Benutzeroberfläche getrennt, so dass Sie es verwenden können Excel Sachen Server-Seite (ohne Büro installiert)
  3. zu tun
  4. Ziemlich billig
  5. Hat eine ähnliche API an dem vorhandenen Excel-COM api so Code über Bewegen relativ einfach ist,

Es hängt alles von den Formeln, die Sie in Ihrer Tabelle benötigen. Werfen Sie einen Blick auf die Formelliste für Tabellenkalkulations-Gang und wenn es ein Spiel für ihn gehen ist.

Andere Tipps

Interop funktioniert gut, außer, dass Sie immer mit Verweisen auf Excel-Objekte am Ende, die nicht freigegeben werden, so Excel-Instanzen nicht geschlossen. In dem folgenden KB-Artikel erklärt, warum:

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

Sie können das Problem vermeiden, wenn Sie sehr sorgfältig Code für eine begrenzte Anzahl von Interop-Szenarien geschrieben haben. Aber im allgemeinen Fall ist es sehr schwierig, es zu bekommen arbeitet zuverlässig.

Sie können einen Blick auf dieses Produkt nehmen wollen: http: // www. spreadsheetgear.com/products/spreadsheetgear.net.aspx

Es ist alles verwalteten Code und direkte .NET-Bibliotheken. Keine InterOp Kopfschmerzen. Ich habe es selbst nicht verwendet, aber ich habe sehr gute Dinge von Menschen in der Finanzwelt gehört.

Wir haben einen Service geschrieben, die eine einzelne Instanz von Excel steuert 2003. Wir haben es geschafft nie Excel-Instanzen zu erhalten sauber zu schließen, so dass wir beginnen eine Instanz, wenn der Dienst zuerst und nur diese verwenden zugegriffen wird, Client-Anfragen Serialisierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top