Freigeben über


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

Excel Services-Architektur

Excel Services Alerts

Bekannte Probleme und Tipps für Excel Services

Bewährte Methoden für Excel Services