Schritt 2: Erstellen von UDFs mit verwaltetem Code
Letzte Änderung: Donnerstag, 21. Januar 2010
Gilt für: SharePoint Server 2010
Nachdem Sie dem Projekt einen Verweis auf Microsoft.Office.Excel.Server.Udf.dll hinzugefügt haben, besteht der nächste Schritt darin, einige benutzerdefinierte Funktionen zu erstellen und sie mit Attributen benutzerdefinierter Funktionen (User-Defined Functions, UDFs) von Excel Services zu markieren.
Sie müssen die UDF-Klasse mit dem Microsoft.Office.Excel.Server.Udf.UdfClass-Attribut und die UDF-Methoden mit dem Microsoft.Office.Excel.Server.Udf.UdfMethod-Attribut markieren.
Alle Methoden, die in der UDF-Assembly nicht mit dem Microsoft.Office.Excel.Server.Udf.UdfMethod-Attribut markiert sind, werden ignoriert, da sie nicht als UDF-Methoden erachtet werden.
Das Microsoft.Office.Excel.Server.Udf.UdfMethod-Attribut hat eine IsVolatile-Eigenschaft. Mit derIsVolatile-Eigenschaft geben Sie an, ob eine UDF-Methode veränderlich oder nicht veränderlich ist. Die IsVolatile-Eigenschaft nimmt einen booleschen Wert an. Der Standardwert ist false, was bedeutet, dass die spezifische UDF-Methode nicht veränderlich ist.
Erstellen von UDFs
So fügen Sie Anweisungen hinzu
Die zu verwendenden Typen sind im Microsoft.Office.Excel.Server.Udf-Namespace definiert. Durch das Hinzufügen einer using-Anweisung (oder einer Imports-Anweisung) am Anfang der Datei Class1.cs ist es Ihnen möglich, diese Typen in Microsoft.Office.Excel.Server.Udf zu verwenden, ohne die Typen im Namespace vollständig qualifizieren zu müssen.
Zum Hinzufügen dieser Anweisung fügen Sie den folgenden Code am Anfang des Codes in der Datei Class1.cs ein, und zwar hinter using System.Text:
using Microsoft.Office.Excel.Server.Udf;
Imports Microsoft.Office.Excel.Server.Udf
So markieren Sie eine UDF-Klasse und UDF-Methoden
Markieren Sie Class1 als UDF-Klasse, indem Sie das folgende Attribut unmittelbar vor public class Class1 hinzufügen:
[UdfClass]
<UdfClass>_
Erstellen Sie eine Funktion, die eine Zahl (des Typs double) annimmt, und multiplizieren Sie diese Zahl in der Funktion mit 9. Die Funktion ist eine nicht veränderliche UDF-Methode. Fügen Sie Class1 den folgenden Code hinzu:
[UdfMethod] public double MyDouble(double d) { return d * 9; }
<UdfMethod> _ Public Function MyDouble(ByVal d As Double) As Double Return d * 9 End Function
Hinweis Der Standardwert für die IsVolatile-Eigenschaft ist false, was bedeutet, dass diese konkrete UDF-Methode nicht veränderlich ist. Daher reicht es aus, eine nicht veränderliche UDF-Methode als [UdfMethod] zu markieren. Es ist nicht notwendig, sie als [UdfMethod(IsVolatile = false)] zu markieren.
Erstellen Sie eine weitere Funktion, die das aktuelle Datum zurückgibt, und verwenden Sie hierfür die System.DateTime.Today-Eigenschaft. Die Funktion ist eine veränderliche UDF-Methode. Fügen Sie Class1 den folgenden Code hinzu:
[UdfMethod(IsVolatile = true)] public DateTime ReturnDateTimeToday() { return (DateTime.Today); }
<UdfMethod(IsVolatile := True)> _ Public Function ReturnDateTimeToday() As Date Return (Date.Today) End Function
So erstellen Sie das Projekt
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Sie sollten die Assembly SampleUdf.dll in dem Verzeichnis finden, in dem Sie Ihr Projekt gespeichert haben.
Vollständiger Code
Das folgende Codebeispiel ist der vollständige Code in der Beispieldatei Class1.cs, die in den vorherigen Verfahren beschrieben wurde.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Excel.Server.Udf;
namespace SampleUdf
{
[UdfClass]
public class Class1
{
[UdfMethod]
public double MyDouble(double d)
{
return d * 9;
}
[UdfMethod(IsVolatile = true)]
public DateTime ReturnDateTimeToday()
{
return (DateTime.Today);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.Office.Excel.Server.Udf
Namespace SampleUdf
<UdfClass> _
Public Class Class1
<UdfMethod> _
Public Function MyDouble(ByVal d As Double) As Double
Return d * 9
End Function
<UdfMethod(IsVolatile := True)> _
Public Function ReturnDateTimeToday() As Date
Return (Date.Today)
End Function
End Class
End Namespace
Siehe auch
Aufgaben
Schritt 1: Erstellen eines Projekts und Hinzufügen eines UDF-Verweises
Schritt 3: Bereitstellen und Aktivieren von UDF-Dateien
Schritt 4: Testen und Aufrufen von UDFs aus Zellen
Gewusst wie: Erstellen einer UDF, die einen Webdienst aufruft
Konzepte
Exemplarische Vorgehensweise: Entwickeln einer UDF mit verwaltetem Code