Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
After you have added a reference to Microsoft.Office.Excel.Server.Udf.dll to your project, the next step is to create some custom functions and mark them with the Excel Services user-defined function (UDF) attributes.
You must mark your UDF class with the Microsoft.Office.Excel.Server.Udf.UdfClass attribute, and mark the UDF methods with the Microsoft.Office.Excel.Server.Udf.UdfMethod attribute.
Any methods that are not marked with the Microsoft.Office.Excel.Server.Udf.UdfMethod attribute in the UDF assembly will be ignored, because they will not be considered UDF methods.
The Microsoft.Office.Excel.Server.Udf.UdfMethod attribute has an IsVolatile property. You use the IsVolatile property to specify a UDF method as volatile or nonvolatile. The IsVolatile property takes a Boolean value. The default value is false, which means that particular UDF method is nonvolatile.
Creating UDFs
To add directives
The types to use are defined in the Microsoft.Office.Excel.Server.Udf namespace. Adding a using (or Imports) directive at the top of the Class1.cs file will allow you to use the types in Microsoft.Office.Excel.Server.Udf without having to fully qualify the types in the namespace.
Um diese Direktive hinzuzufügen, fügen Sie den folgenden Code am Anfang des Codes in der Datei Class1.cs hinzu, nach
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
Class1als UDF-Klasse, indem Sie das folgende Attribut direkt über hinzufügenpublic class Class1:[UdfClass]<UdfClass>_Create a function that takes a number (of type double), and in the function, multiply the number by 9. The function is a UDF method that is nonvolatile. Fügen Sie
Class1den 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 FunctionHinweis
Der Standardwert für die IsVolatile-Eigenschaft ist false, was bedeutet, dass diese konkrete UDF-Methode nicht veränderlich ist. Daher ist es ausreichend, eine nicht flüchtige UDF-Methode als
[UdfMethod]zu kennzeichnen. Es ist nicht erforderlich, sie als[UdfMethod(IsVolatile = false)]zu kennzeichnen.Create another function that returns the current date using the System.DateTime.Today property. The function is a UDF method that is volatile. Fügen Sie
Class1den 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
To build the project
- On the Build menu, click Build Solution.
- You should find SampleUdf.dll assembly in the directory where you have saved your project.
Vollständiger Code
The following code sample is the complete code in the Class1.cs example file described in the previous procedures.
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
- Step 1: Creating a Project and Adding a UDF Reference
- Step 3: Deploying and Enabling UDFs
- Step 4: Testing and Calling UDFs from Cells
- How to: Create a UDF That Calls a Web Service