2016-11-08 9 views
4

Ein Datenanbieter will ein Excel-Add-in entwickeln, das sind die Anforderungen:Erstellen eines Add-In und UDF für die alle Excel-Versionen

1) es auf dem Desktop installiert werden kann. Es fügt ein Menü und Schaltflächen in der Multifunktionsleiste hinzu und bietet auch einige spezifische Funktionen (um Echtzeitdaten zu erhalten, wie die Bloomberg-Funktion).

2) der Add-In sollte in Excel 2007 arbeitet, 2010, 2013 und 2016.

Die Frage ist, welche Technologie soll diese Add-in erstellen verwendet werden. Hier sind einige meiner Gedanken:

1) JavaScript-API für Excel passt nicht, weil es nicht für Excel 2007 funktioniert, 2010.

2) VSTO. Weiß jemand, ob VSTO-Add-Ins für Excel 2013 und 2016 funktionieren?; Ist es möglich, ein VSTO-Add-In zu erstellen, das für alle Excel 2007, 2010, 2013 und 2016 funktioniert?

3) C API für Excel. Es scheint, dass C-API für Excel verwendet wird, um XLLs zu erstellen. Weiß jemand, ob C-API für Excel Menü und Schaltflächen erstellen kann?

Antwort

1

Hier einige Punkte:

  1. JavaScript API, sind sie Web-basierte Addin, so dass Ihr AddIn wird ohne Internet nicht funktionieren, aber es scheint, dass Ihre Lösung für einen Data Provider ist so I gehe davon aus, dass deine Kunden Internet haben werden. Wie Sie gesagt haben, hat es für Versionen vor 2013 nicht funktioniert. Siehe here

  2. VSTO, wahrscheinlich die beste Option, aber Sie müssen sich bewusst sein, eine wichtige Änderung in Bezug auf MDI/SDI zwischen Excel 2013 und Vorgängerversion. Andere kleine Verbesserungen können auftreten (Bild idmso, einige Ereignisse ..) aber VSTO 2007 sollte 2016 kompatibel sein. VSTO 2016 existiert nicht, die neueste Version ist 2010 (Version 4.0 Runtime). Sie sollten es regelmäßig während der Entwicklungszeit testen, um die Kompatibilität zu überprüfen.

  3. Es ist möglich, ein Menü (eine Drop-Down-Liste) und eine Symbolleiste über die Excel C Api (mit xlfAddMenu und xlfAddToolbar), aber nicht Ribbon-Steuerelemente hinzufügen, die die COM-Schnittstelle IRibbonExtensibility erfordern. Die einzige Möglichkeit, dem Rubbon Controls hinzuzufügen, ist die COM-Technologie (auf der VSTO basiert). Die Excel C-API hat sich seit der Version 2007 nicht geändert, sodass sie für alle Versionen vollständig kompatibel ist. Sie finden ein funktionierendes Beispiel in der Excel C API SDK (nicht im 2013 SDK - dieser Teil wurde entfernt), in der Datei GENERIC.C, siehe die xlAutoOpen Funktion. Bitte beachten Sie auch, dass es sehr schwierig ist, Informationen darüber zu finden.

Aus meiner Sicht gibt es zwei Möglichkeiten: 1) alles über VSTO oder 2) implementieren implementieren Ihre Routinen über die Excel-C-API und die Interaktion mit ihm über eine VSTO Addin, die für gerade verwendet wird, Multifunktionsleisten-Steuerelemente Ich würde Ihnen die erste Lösung (VSTO) vorschlagen, Sie finden mehr Dokumentation darüber.

EDIT:

realisiert Sie Ihre Frage auch über UDF ist.Es gibt drei Möglichkeiten, UDFs zu Excel hinzuzufügen: über VBA, über eine COM-Automatisierung und über die Excel C-API. Die beste Option für UDF ist definitiv die EXCEL C-API, aber es gibt ein Open-Source-Projekt, das diese API in C# "einwickelt", siehe Excel DNA.

EDIT 2:

Als Alternative zu VSTO, noch im Netz, gibt es die NetOffice project on Codeplex, dass es es einen Versuch wert, sie behaupten, dass sie alle Excel-Versionen unterstützen. Es wird Ihnen bezüglich des UDF-Teils nicht helfen, aber für die GUI scheint es ein guter Kandidat zu sein.

+0

Und wenn ich mit Excel C API + VSTO (für die Multifunktionsleiste) gehen, könnte ich VSTO 2010 verwenden, weil es keine Multifunktionsleiste vor Excel 2010 gibt? – SoftTimur

+0

Danke für deine Antwort ... Also ich gehe mit rein VSTO, sollte ich VSTO 2007 (statt 2010) verwenden, um die Kompatibilität mit allen Versionen zu gewährleisten? Und mit VSTO 2007 kann ich UDF erstellen, das auch in Excel 2007 verwendet werden kann. – SoftTimur

+2

Sie sollten VSTO 2010 verwenden, es wird mit 2007 arbeiten - siehe https://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office, aber ich empfehle Ihnen immer noch regelmäßig Ihren Entwickler zu testen, es gibt eine Multifunktionsleiste in Excel 2007, also werden Sie es sein fähig, es wie in 2010-2016 zu kontrollieren. Excel C API + VSTO scheint die bevorzugte Option zu sein. Beachten Sie, dass es nicht für Mac Osx funktioniert, da sowohl die Excel C API + VSTO nicht unterstützt werden – Malick

Verwandte Themen