2016-11-08 4 views
4

Un fournisseur de données souhaite développer un add-in Excel, ce sont les exigences:Construire un complément et UDF pour toutes les versions Excel

1), il peut être installé sur le bureau. Il ajoute un menu et des boutons dans le ruban, et il fournit également des fonctions spécifiques (pour obtenir des données en temps réel, comme la fonction Bloomberg).

2) le complément devrait fonctionner dans Excel 2007, 2010, 2013 et 2016.

La question est que la technologie devrait être utilisée pour créer cette add-in. Voici quelques-unes de mes pensées:

1) API JavaScript pour Excel ne convient pas, car il ne fonctionne pas pour Excel 2007, 2010.

2) VSTO. Est-ce que quelqu'un sait si les compléments VSTO fonctionnent pour Excel 2013 et 2016?; Est-il possible de construire un complément VSTO qui fonctionne pour tous les Excel 2007, 2010, 2013 et 2016?

3) C API pour Excel. Il semble que l'API C pour Excel est utilisée pour construire des XLL. Est-ce que quelqu'un sait si l'API C pour Excel peut construire un menu et des boutons?

Répondre

1

Voici quelques points:

  1. API JavaScript, ils sont Addin sur le Web, de sorte que votre Addin ne fonctionnera pas sans internet, mais il semble que votre solution est un fournisseur de données, donc je supposez que vos clients auront Internet. Comme vous l'avez dit, cela n'a pas fonctionné pour les versions antérieures à 2013. VSTO, probablement la meilleure option, mais vous devez être conscient d'un changement majeur lié à MDI/SDI entre Excel 2013 et la version précédente. D'autres petits réglages peuvent apparaître (image idmso, certains événements ..) mais VSTO 2007 devrait être compatible 2016. VSTO 2016 n'existe pas, la dernière version est 2010 (Version 4.0 Runtime). Vous devriez le tester régulièrement pendant le développement pour vérifier la compatibilité.

  2. Il est possible d'ajouter un menu (une liste déroulante) et une barre d'outils via Excel C Api (en utilisant xlfAddMenu et xlfAddToolbar), mais pas les contrôles de ruban qui nécessitent l'interface COM IRibbonExtensibility. Ainsi, la seule façon d'ajouter des contrôles au Rubbon est via la technologie COM (à partir de laquelle VSTO est basé). L'API C d'Excel n'a pas changé depuis la version 2007, elle sera donc entièrement compatible pour toutes les versions. Vous pouvez trouver un exemple de travail dans l'API C Excel SDK (pas dans le 2013 SDK - cette partie a été supprimée), dans le fichier GENERIC.C, voir la fonction xlAutoOpen. Notez également qu'il est très difficile de trouver des informations à ce sujet.

De mon point de vue, vous avez deux possibilités: 1) tout mettre en œuvre par VSTO ou 2) pour mettre en œuvre vos routines via l'API Excel C et d'interagir avec lui via un Addin VSTO qui est juste utilisé pour contrôles de ruban. Je vous suggère la première solution (VSTO), vous trouverez plus de documentation à ce sujet.

EDIT:

viens juste de réaliser votre question est aussi UDF.Il existe trois façons d'ajouter des fonctions UDF à Excel: via VBA, via une automatisation COM et via l'API C d'Excel. La meilleure option pour UDF est définitivement l'API EXCEL C mais il existe un projet open source qui "enveloppe" cette API en C#, voir Excel DNA.

EDIT 2: Les versions

Comme alternative à VSTO, encore en net, il y a le NetOffice project on Codeplex qu'il vaut la peine d'essayer, ils prétendent qu'ils soutiennent tous Excel. Cela ne vous aidera pas en ce qui concerne la partie UDF, mais pour l'interface graphique, il semble que ce soit un bon candidat.

+0

Et si je vais avec Excel C API + VSTO (pour le ruban), je pourrais utiliser VSTO 2010 car il n'y a pas de ruban avant Excel 2010? – SoftTimur

+0

Merci pour votre réponse ... Donc, je vais avec purement VSTO, je devrais utiliser VSTO 2007 (plutôt que 2010) pour assurer la compatibilité avec toutes les versions? Et VSTO 2007 me permet de créer des UDF utilisables dans Excel 2007? – SoftTimur

+2

Vous devriez utiliser VSTO 2010, cela fonctionnera avec 2007 - voir https://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office mais je vous recommande toujours de tester régulièrement votre dev, il y a un ruban dans excel 2007 donc vous serez capable de le contrôler comme en 2010-2016. Excel C API + VSTO semble être l'option préférable. Enfin, notez que cela ne fonctionnera pas pour Mac Osx car les API C + VSTO Excel ne sont pas supportées. – Malick