Häufig gestellte Fragen zu Excel Services-UDFs
Letzte Änderung: Donnerstag, 21. Januar 2010
Gilt für: SharePoint Server 2010
Inhalt dieses Artikels
Erstellen von UDFs mit verwaltetem Code
Datentypen
XLLs
Im Folgenden finden Sie einige häufig gestellte Fragen zu benutzerdefinierten Funktionen (User-Defined Functions, UDFs) in Excel Services.
Erstellen von UDFs mit verwaltetem Code
Was zeichnet eine unterstützte UDF-Klasse aus?
Die UDF-Klasse in einer UDF-Assembly muss öffentlich sein. Sie kann versiegelt sein. Sie kann nicht abstrakt, intern oder privat sein. Sie muss einen parameterlosen, öffentlichen Konstruktor aufweisen. Bei Sprachen, die automatisch einen parameterlosen, öffentlichen Konstruktor generieren (z. B. C#), können Sie vollständig auf den Konstruktor verzichten.
Was zeichnet eine unterstützte UDF-Methode aus?
Die UDF-Methode in einer UDF-Assembly muss öffentlich sein. Die UDF-Methode muss threadsicher sein.
Eine UDF-Methode darf Folgendes nicht aufweisen:
ref- oder out-Parameter
retval-Attribute
Optional-Argumente
nicht unterstützte Datentypen
Die UDF-Methode muss außerdem einen unterstützten Rückgabetyp aufweisen. Eine Liste unterstützter Datentypen finden Sie im Abschnitt "Datentypen" dieses Themas.
Ist es möglich, einen Webdienst von einer UDF-Assembly aufzurufen?
Ja. Sehen Sie sich hierzu beispielsweise den folgenden UDF-Beispielcode an. Lesen Sie außerdem Gewusst wie: Erstellen einer UDF, die einen Webdienst aufruft.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Excel.Server.Udf;
using UdfWS.dk.iter.webservices;
namespace UdfWS
{
[UdfClass]
public class MyUdfClass
{
// Instantiate the Web service. The Web service used is at
// http://webservices.iter.dk/calculator.asmx
Calculator calc = new Calculator();
[UdfMethod]
public int MyFunction()
{
int i;
i = (i + 88) * 2;
return i;
}
[UdfMethod(IsVolatile = true)]
public double MyDouble(double d)
{
return d * 9;
}
[UdfMethod]
public int AddMe(int a, int b)
{
int c;
// Call the Web service Add method
c = calc.Add(a, b);
return c;
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.Office.Excel.Server.Udf
Imports UdfWS.dk.iter.webservices
Namespace UdfWS
<UdfClass> _
Public Class MyUdfClass
' Instantiate the Web service. The Web service used is at
' http://webservices.iter.dk/calculator.asmx
Private calc As New Calculator()
<UdfMethod> _
Public Function MyFunction() As Integer
Dim i As Integer
i = (i + 88) * 2
Return i
End Function
<UdfMethod(IsVolatile := True)> _
Public Function MyDouble(ByVal d As Double) As Double
Return d * 9
End Function
<UdfMethod> _
Public Function AddMe(ByVal a As Integer, ByVal b As Integer) As Integer
Dim c As Integer
' Call the Web service Add method
c = calc.Add(a, b)
Return c
End Function
End Class
End Namespace
Datentypen
Welche Datentypen können als UDF-Parameter verwendet werden?
Die folgenden Datentypen werden unterstützt:
Numerische Typen: Double, Single, Int32, UInt32, Int16, UInt16, Byte, Sbyte
String
Boolean
Objektarrays: ein- oder zweidimensionale Arrays, d. h. object [] und object [,]
DateTime
Welche Rückgabetypen werden unterstützt?
Die folgenden Rückgabetypen werden unterstützt:
Numerische Typen: Double, Single, Int32, UInt32, Int16, UInt16, Byte, Sbyte
String
Boolean
Objektarrays: ein- oder zweidimensionale Array, d. h. object [], object [,], int[] und int[,]
DateTime
Object
XLLs
Werden XLLs unterstützt?
Nicht direkt. Excel Services lädt nur UDFs mit verwaltetem Code und ruft nur solche UDFs auf. Sie können jedoch einen Wrapper mit verwalteten Code schreiben, der die XLLs aufruft, und die XLLs zusammen mit der Wrapperassembly mit verwaltetem Code auf dem Server bereitstellen.
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
Konzepte
Grundlegendes zu Excel Services-UDFs
Exemplarische Vorgehensweise: Entwickeln einer UDF mit verwaltetem Code