2009-07-16 3 views
0

Hallo ich benutze vs2008 + vsto Excel zu erstellen hinzufügen (Ribbon) ... ist es möglich, es zu einer DLL, wie myaddin.dll, so dass die Benutzer müssen nur das hinzufügen dll ... und benutzen, oder können Sie einen besseren Ansatz vorschlagen, vielen Dank!C# Excel hinzufügen in als DLL

Antwort

0

Soweit ich weiß, muss ein Excel-Addin eine xla/xlam-Datei sein. Du könntest eine DLL von der Xla angerufen haben, aber du brauchst immer noch die Xla.

0

Sie können dies tun, indem Sie Ihr Excel-Add-In in C# als COM-Automatisierungsobjekt schreiben. Wenn Sie dann in Excel zum Dialogfeld Add-Ins wechseln, können Sie ein COM-Objekt auswählen oder zu einer Com-DLL navigieren. Excel erstellt eine Instanz der Objekte, die Sie dann aufrufen können.

+0

Sind Sie ganz sicher? Soweit ich es verstehe, benötigt Code, der in Excel ausgeführt wird, erhöhte Berechtigungen und GAC-Berechtigung. – Wilhelm

+0

Ich bin positiv! Ich habe eine Komponente auf diese Weise geschrieben und bereitgestellt. Es gibt ein paar Registrierungsschlüssel erforderlich, aber das ist es ... – Sean

1

Ja, Sie können. Dlls, die in Excel verwendet werden, müssen jedoch in der GAC gespeichert werden und einige Registrierungsschlüssel müssen geändert werden (im Grunde sagt Excel, wo die Dll zu finden ist). Daher ist es am besten, ein Setup zu verwenden, um die DLL zu installieren. Das Verfahren ist etwas kompliziert und es ist am besten beschrieben here und fortgesetzt here.

1

die obigen Ausführungen zu korrigieren ...

  1. die Montage GACing ist nicht notwendig, aber die Assembly für COM-Automatisierungs Registrierung notwendig ist. Wie oben erwähnt, wird dies am einfachsten mit MSDN doco on EXCEL Com addins und einem Setup-Projekt zur Bereitstellung der benötigten Schlüssel erreicht. Der Vorteil der starken Benennung und GACing der Assembly besteht darin, dass sie vollständig vertrauenswürdig ist. Dies kann ein einfacherer Weg (für einige Personen) sein, Berechtigungsausnahmen zu umgehen (als mit CAS). In der Praxis ist dies jedoch kein Show-Stopper, es sei denn, Sie verkaufen Ihr Add-In extern.

  2. XLA/XLAM ist nicht notwendig, es ist eine Alternative zur Verwendung eines COM-Addins (entweder VB6, C++ oder .net) XLA ist eine leichtere Option, wenn Sie schnell eine Lösung entwickeln und erstellen möchten.