Sprache für Excel AddIn



  • Liebe Kollegen,

    ich stehe derzeit vor dem Problem mich entscheiden zu müssen auf welche Technologie ich für ein Excel-Addin zurückgreifen soll. Bisher habe ich für Excel-Add-Ins immer auf die Möglichkeit zurückgegriffen diese per VBA zu schreiben. Allerdings hat VBA halt einige Nachteile und es stellt sich derzeit die Frage ob man auf C# mit VSTO zurückgreifen soll.

    VBA:
    + einfache Entwicklung
    + einfache Installation ohne Zertifikate und große Sicherheitsprobleme
    + sehr einfache Verteilung (im Regelfall eine *.xlam) Datei
    + funktioniert über alle Excel-Versionen hinweg
    - eingeschränkte Entwicklungsmöglichkeiten durch Sprache VBA
    - komplexere Sachverhalte sehr schwer abzubilden
    - langsam, da Single-Threading

    VSTO:
    + volle Funktionalität von .NET nutzbar
    + volle Multithreading-Unterstützung
    + Drittanbieter Libraries nutzbar
    - Installation kann schwierig wergen (? siehe unten)
    - abhängig von Excel-Version

    Anforderungen:
    * großteils Tasks die Aktionen in einer Arbeitsmappe durchführen, also zB Zellen analysieren und einfärben
    * durchaus große Arbeitsmappen denkbar, VBA-Lösung läuft teilweise viel zu lange
    * Zugriff auf die jeweils geöffnete Arbeitsmappe sowie auf geschlossene Arbeitsmappen (können geöffnet werden) notwendig
    * Zugriff auf Excel-Funktionen notwendig - zB Vorgänger und Nachfolger einblenden
    * Interaktion mit anderen Office Programmen (Powerpoint, Word) wäre super - zB kopiere eine Excel-Tabelle automatisch nach Word / Powerpoint (das geht mit VBA)

    Die Frage ist nun auf welche Lösung man zurückgreifen sollte um ein solches AddIn zu erzeugen. VSTO mit C# bietet natürlich jede Menge offensichtliche Vorteile, aber wie sieht es mit den Einschränkungen aus? Vor allem in Hinblick auf die Installation (Zertifikate?) stellt sich mir diese Lösung. Die Anwender sind keine IT-Leute sondern BWLer.

    Was verwenden Lösungen wie ThinkCell, CapitalIQ oder Thomson?

    Vielen Dank!


Anmelden zum Antworten