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.
Hinweis |
---|
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.
Vorsicht |
---|
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:
Konfigurieren von Codegruppen mit dem .NET Framework-Konfigurationstool (https://msdn.microsoft.com/library/default.asp?url=/library/de-de/cpguide/html/cpconUsingNETConfigurationToolToWorkWithCodeGroups.asp?frame=true)
Codezugriffssicherheit in der Praxis (https://msdn.microsoft.com/library/default.asp?url=/library/de-de/dnnetsec/html/thcmch08.asp)
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