Grundlegendes zu Excel Services-UDFs

Letzte Änderung: Mittwoch, 17. März 2010

Gilt für: SharePoint Server 2010

Benutzerdefinierte Funktionen (User-defined functions, UDFs) sind benutzerspezifische Funktionen, mit denen die Berechnungs- und Datenimportfunktionen von Excel erweitert werden. Entwickler können mit benutzerdefinierten Berechnungspaketen Folgendes bereitstellen:

  • Funktionen, die nicht in Excel integriert sind.

  • Benutzerdefinierte Implementierungen für integrierte Funktionen.

  • Benutzerdefinierte Datenfeeds für veraltete oder nicht unterstützte Datenquellen sowie anwendungsspezifische Datenflüsse.

Benutzer, die Arbeitsmappen erstellen, können UDFs genau wie integrierte Funktionen über Formeln von einer Zelle aus aufrufen (Beispiel: "=MyUdf(A1*3.42)").

Excel Services-UDFs ermöglichen Ihnen die Verwendung von Formeln in Zellen zum Aufrufen von benutzerdefinierten Funktionen, die in verwaltetem Code geschrieben und in Microsoft SharePoint Server 2010 bereitgestellt wurden. Sie können UDFs zu folgenden Zwecken erstellen:

  • Aufrufen von benutzerdefinierten mathematischen Funktionen.

  • Einlesen von Daten aus benutzerdefinierten Datenquellen in Arbeitsmappen.

  • Aufrufen von Webdiensten aus den UDFs.

Erstellen von UDFs mit verwaltetem Code

Eine einfache Möglichkeit der Erstellung einer Excel Services-UDF mit verwaltetem Code besteht darin, die Klassenbibliotheksvorlage von Microsoft Visual Studio 2005 zu verwenden. Dazu müssen Sie die Excel Services-UDF-DLL (Dynamic Link Library), Microsoft.Office.Excel.Server.Udf.dll, in Ihrem UDF-Projekt mit verwaltetem Code referenzieren.

Microsoft.Office.Excel.Server.Udf.dll wurde mit Microsoft .NET Framework 2.0 kompiliert. Wenn Sie zum Erstellen der UDF mit verwaltetem Code Visual Studio 2003 verwenden, können Sie Microsoft.Office.Excel.Server.Udf.dll nicht referenzieren. Eine Assembly, die mit einer älteren Version von .NET Framework erstellt wurde, kann keine Assembly referenzieren, die mit .NET Framework 2.0 erstellt wurde.

Erforderliche Attribute

Zum Verwenden von benutzerdefinierten Funktionen in einer Klasse als eine Excel Services-UDF-Klasse müssen Sie die UDF-Klasse mit dem Microsoft.Office.Excel.Server.Udf.UdfClass-Attribut kennzeichnen. Klassen, die in der UDF-Assembly nicht mit diesem Attribut gekennzeichnet sind, werden von Dienste für Excel-Berechnungen ignoriert. Sie gelten nicht als Excel Services-UDF-Klassen.

Zum Verwenden von benutzerdefinierten Funktionen in einer Klasse als Excel Services-UDF-Methoden müssen Sie die UDF-Methoden mit dem Microsoft.Office.Excel.Server.Udf.UdfMethod-Attribut kennzeichnen. Methoden, die in der UDF-Assembly nicht mit diesem Attribut gekennzeichnet sind, werden ignoriert, weil sie nicht als Excel Services-UDF-Methoden gelten.

Das Microsoft.Office.Excel.Server.Udf.UdfMethod-Attribut enthält eine IsVolatile-Eigenschaft. Mithilfe der IsVolatile-Eigenschaft geben Sie eine UDF-Methode als flüchtig oder permanent an. Die IsVolatile-Eigenschaft nimmt einen booleschen Wert an. Der Standardwert lautet false, d. h. die betreffende UDF-Methode ist permanent.

Speicherort von "Microsoft.Office.Excel.Server.Udf.dll"

Auf dem Computer, auf dem Sie SharePoint Server 2010 installiert haben, finden Sie eine Kopie der Datei Microsoft.Office.Excel.Server.Udf.dll in folgendem Verzeichnis:

[drive:]\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI

Bereitstellung und Sicherheit

Typ des Speicherorts für die Bereitstellung

UDF-Assemblys können sich in einem lokalen Verzeichnis, in einem globalen Assemblycache oder auf einer Netzwerkfreigabe befinden. In einem Farmszenario muss der lokale Verzeichnispfad für die gesamte Farm der gleiche sein.

Identifizieren von UDF-Assemblys

Sie können die Identität einer UDF-Assembly verfügbar machen, indem Sie den vollständigen Pfad oder den starken Namen der aufzurufenden Assembly für Dienste für Excel-Berechnungen verwenden.

So können Sie z. B. Folgendes angeben:

  • C:\UDFs\MySampleUdf.dll

  • \\MyNetworkServer\UDFs\MySampleUdf.dll

  • CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38

Aktivieren von UDF-Assemblys

UDF-Assemblys sind standardmäßig deaktiviert.

Jeder vertrauenswürdige Excel Services-Speicherort hat ein AllowUdfs-Flag.

HinweisHinweis

Das AllowUdfs-Flag wird durch die Option Benutzerdefinierter Funktionen ist zulässig auf der Excel Services-Seite Vertrauenswürdige Dateispeicherorte angegeben. Wie Sie zur Seite Vertrauenswürdige Dateispeicherorte navigieren, erfahren Sie unter Schritt 3: Bereitstellen und Aktivieren von UDF-Dateien.

Der Standardwert für AllowUdfs ist false. Ist der AllowUdfs-Wert an einem bestimmten vertrauenswürdigen Speicherort auf false festgelegt, dürfen von den Arbeitsmappen an diesem vertrauenswürdigen Speicherort keine UDFs aufgerufen werden.

Wenn Sie bestimmen möchten, dass UDFs von einem bestimmten vertrauenswürdigen Speicherort aus aufgerufen werden dürfen, legen Sie den AllowUdfs-Wert auf true fest.

Wenn der AllowUdfs-Wert beim Starten einer Sitzung für eine Arbeitsmappe, die UDF-Aufrufe an diesem vertrauenswürdigen Speicherort umfasst, false lautet, treten bei den UDF-Aufrufen Fehler auf. Wenn Sie den AllowUdfs-Wert nach dem Starten einer Sitzung auf true ändern, treten ebenfalls Fehler bei den UDF-Aufrufen auf. Der Grund hierfür ist, dass Änderungen am AllowUdfs-Flag in der nächsten Sitzung wirksam werden, d. h. nach der Aktualisierung der Konfigurationsdatenbank.

Zulassen der Ausführung von UDF-Assemblys

Wenn ein Administrator die Ausführung von UDF-Assemblys zulassen möchte, muss er alle UDF-Assemblys registrieren und UDF-Aufrufe durch Arbeitsmappen ermöglich, indem er das AllowUdfs-Flag an den vertrauenswürdigen Speicherorten auf true festlegt.

Erneutes Laden einer UDF-Assembly

Zum Erneuten Laden einer UDF-Assembly können Sie iisreset ausführen oder die Dienste für Excel-Berechnungen-Anwendungsdomäne neu starten.

VorsichtVorsicht

Durch Zurücksetzen von Internetinformationsdienste (Internet Information Services, IIS) werden alle aktuellen Sitzungen beendet.

Weitere Informationen finden Sie unter Gewusst wie: Aktivieren von UDFs.

Weitere Informationen finden Sie unter Entladen einer Anwendung aus dem Arbeitsspeicher (https://msdn.microsoft.com/de-de/library/ms943779).

Standard-CAS-Berechtigung für UDF-Assemblys

UDF-Assemblys werden standardmäßig als voll vertrauenswürdig ausgeführt.

Beschränken der CAS-Berechtigung für UDF-Assemblys

Soll eine bestimmte UDF-Assembly nicht als voll vertrauenswürdig ausgeführt werden, müssen Sie die CAS-Berechtigung (Code Access Security, Codezugriffssicherheit) für diese UDF-Assembly explizit beschränken. Sie können die Codegruppen konfigurieren und die Berechtigung beschränken, indem Sie das .NET Framework 2.0-Konfigurationstool verwenden.

Entwickler können auch die RequestMinimum-Methode und die RequestOptional-Methode im Code verwenden, um sicherzustellen, dass die UDF-Assemblys nur die wirklich erforderlichen Berechtigungen erhalten.

Weitere Informationen zum Konfigurieren von Codegruppen sowie zur RequestMinimum- und RequestOptional-Methode finden Sie in den folgenden Artikeln auf MSDN:

Siehe auch

Aufgaben

Gewusst wie: Erstellen einer UDF, die einen Webdienst aufruft

Gewusst wie: Festlegen eines Speicherorts als vertrauenswürdig

Gewusst wie: Abfangen von Ausnahmen

Gewusst wie: Aktivieren von UDFs

Konzepte

Exemplarische Vorgehensweise: Entwickeln einer UDF mit verwaltetem Code

Häufig gestellte Fragen zu Excel Services-UDFs

Excel Services-Architektur

Excel Services Alerts

Bekannte Probleme und Tipps für Excel Services

Bewährte Methoden für Excel Services