2009-06-22 13 views
3

Ich habe Excel 2003 'Web Services Toolkit' für einige Zeit verwendet, um Tabellen zu schreiben, die über VBA mit externen Webdiensten verbinden.Excel 2007 - im Gespräch mit einem Webdienst

(dh Sie installieren das Web Services Toolkit, das dem Menü "Tools" einen Eintrag "Web-Service-Referenzen ..." hinzufügt. Anschließend richten Sie einen Verweis auf eine Web-Service-URL ein und das Toolkit schreibt die erforderlichen Proxy-Klassen In VBA, um die Verbindung für Sie zu tun.Die Web-Service-Methoden erscheinen dann in VBA.)

Excel 2007 hat nicht diese "Web Services Toolkit" - oder zumindest ich kann nichts ähnliches finden. Ich stelle fest, dass meine Excel-2003-Blätter im Jahr 2007 gut funktionieren, so dass die notwendigen Haken irgendwo da sind.

Was bringt mich zu meiner Frage - Was ist die bewährte Art, mit einem externen Webdienste in Excel 2007 zu sprechen? Ich kann nichts Nützliches im Internet finden?

Dank ...

SAL

Antwort

4

Sie haben mehrere Möglichkeiten:

1) Microsoft Office Soap Type Library v3.0 (wie oben erwähnt). Schön und einfach, funktioniert gut in VBA, völlig nutzlos, weil es WS-Security nicht unterstützt. Wenn Sie SOAP ohne WS-Sicherheit verwenden, verschwenden Sie Ihre Zeit.

2) C# lib ausgesetzt zu Excel mit COM Interop. Es ist relativ einfach, die Baugruppe für die Verwendung in VBA verfügbar zu machen - ermöglicht die Verwendung von WSE 3.0/WCF in VBA. Assembly muss stark benannt sein.

3) Visual Studio Vorlagen. Diese Vorlagen integrieren C# (oder eine andere CLR-Sprache) innerhalb der Tabelle als Assembly. Die beste Form der Integration, die vollständigen Zugriff auf .NET-Framework von Excel (oder Word, PowerPoint, etc.) ermöglicht. Vorlagen sind jedoch nur in der Visual Studio Team Suite verfügbar.

Wenn Sie Sicherheit hinzufügen (auch wenn nur HTTPS), müssen Sie sicherstellen, dass Sie MMC und sein Zertifikat-Snapin kennen. Sie müssen Ihrem Zertifikatsspeicher die erforderlichen Zertifizierungsstellen hinzufügen, um sicherzustellen, dass .NET nicht verärgert wird.