Compartir a través de


Preguntas más frecuentes sobre las UDF de Excel Services

Última modificación: jueves, 21 de enero de 2010

Hace referencia a: SharePoint Server 2010

En este artículo
Creación de UDF de código administrado
Tipos de datos
XLL

A continuación, se muestran algunas de las preguntas más frecuentes acerca de las funciones definidas por el usuario (UDF) de Servicios de Excel.

Creación de UDF de código administrado

¿Qué es una clase UDF admitida?

La clase UDF de un ensamblado UDF debe ser pública. Puede estar sellada. No puede ser abstracta, interna, ni privada. Debe tener un constructor público sin parámetros. Para los lenguajes que generan automáticamente un constructor público sin parámetros (por ejemplo, C#), es posible no tener constructor en absoluto.

¿Qué es un método UDF admitido?

El método UDF de un ensamblado UDF debe ser público. El método UDF debe ser seguro para subprocesos.

Un método UDF no puede tener:

  • Parámetros ref o out

  • Atributos retval

  • Argumentos Optional

  • Tipos de datos no admitidos

El método UDF también debe tener un tipo de valor devuelto admitido. Para obtener una lista de los tipos de datos admitidos, consulte la sección "Tipos de datos" de este tema.

¿Puedo llamar a un servicio web desde un ensamblado UDF?

Sí. Para obtener un ejemplo, consulte el código de ejemplo de UDF siguiente. Consulte también Procedimiento para crear una UDF que llame a un servicio web.

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

Tipos de datos

¿Cuáles son los tipos de datos que se pueden usar como parámetros de una UDF?

Los tipos de datos admitidos son los siguientes:

  • Tipos numéricos: Double, Single, Int32, UInt32, Int16, UInt16, Byte, Sbyte

  • String

  • Boolean

  • Matrices de objetos: matrices unidimensionales o bidimensionales, es decir object[] y object[,]

  • DateTime

¿Cuáles son los tipos de valores devueltos admitidos?

Los tipos de valores devueltos admitidos son los siguientes:

  • Tipos numéricos: Double, Single, Int32, UInt32, Int16, UInt16, Byte, Sbyte

  • String

  • Boolean

  • Matrices de objetos: matrices unidimensionales o bidimensionales, es decir object[], object[,], int[] e int[,])

  • DateTime

  • Object

XLL

¿Se admiten los archivos XLL?

No directamente. Servicios de Excel cargará y llamará sólo a las UDF de código administrado. No obstante, puede escribir un contenedor de código administrado para llamar a los XLL e implementar los XLL en el servidor, junto con el ensamblado del contenedor de código administrado.

Vea también

Tareas

Procedimiento para crear una UDF que llame a un servicio web

Procedimiento para confiar en una ubicación

Procedimiento para detectar excepciones

Conceptos

Información sobre las UDF de Excel Services

Tutorial: Desarrollo de una UDF de código administrado

Arquitectura de Excel Services

Excel Services Alerts

Problemas conocidos y sugerencias de Servicios de Excel

Procedimientos recomendados de Excel Services