Étape 2 : création d'une UDF de code managé
Dernière modification : jeudi 21 janvier 2010
S’applique à : SharePoint Server 2010
Une fois que vous avez ajouté une référence à Microsoft.Office.Excel.Server.Udf.dll pour votre projet, l'étape suivante consiste à créer des fonctions personnalisées et à les marquer avec les attributs de fonctions définies par l'utilisateur (UDF, User-Defined Functions) des Excel Services.
Vous devez marquer votre classe UDF avec l'attribut Microsoft.Office.Excel.Server.Udf.UdfClass et marquer les méthodes UDF avec l'attribut Microsoft.Office.Excel.Server.Udf.UdfMethod.
Les méthodes qui ne sont pas marquées avec l'attribut Microsoft.Office.Excel.Server.Udf.UdfMethod dans l'assembly UDF sont ignorées, car elles ne sont pas considérées comme des méthodes UDF.
L'attribut Microsoft.Office.Excel.Server.Udf.UdfMethod a une propriété IsVolatile. Vous utilisez la propriété IsVolatile pour spécifier une méthode UDF comme étant volatile ou non volatile. La propriété IsVolatile accepte une valeur booléenne. La valeur par défaut est false, ce qui signifie que cette méthode UDF en particulier est non volatile.
Création d'UDF
Ajouter des directives
Les types à utiliser sont définis dans l'espace de noms Microsoft.Office.Excel.Server.Udf. L'ajout d'une directive using (ou Imports) en haut du fichier Class1.cs vous permet d'utiliser les types de Microsoft.Office.Excel.Server.Udf sans avoir à qualifier pleinement les types dans l'espace de noms.
Pour ajouter cette directive, ajoutez le code suivant au début de votre code dans le fichier Class1.cs, après using System.Text:
using Microsoft.Office.Excel.Server.Udf;
Imports Microsoft.Office.Excel.Server.Udf
Marquer une classe et des méthodes UDF
Marquez Class1 en tant que classe UDF en ajoutant l'attribut suivant juste au-dessus de public class Class1 :
[UdfClass]
<UdfClass>_
Créez une fonction qui accepte un nombre (de type double), et dans la fonction, multipliez le nombre par 9. La fonction est une méthode UDF non volatile. Ajoutez le code suivant à Class1 :
[UdfMethod] public double MyDouble(double d) { return d * 9; }
<UdfMethod> _ Public Function MyDouble(ByVal d As Double) As Double Return d * 9 End Function
Notes
La valeur par défaut de la propriété IsVolatile est false, ce qui signifie que cette méthode UDF en particulier est non volatile. Par conséquent, il suffit de marquer une méthode UDF non volatile avec [UdfMethod]. Il n'est pas nécessaire de la marquer avec [UdfMethod(IsVolatile = false)].
Créez une autre fonction qui renvoie la date actuelle à l'aide de la propriété System.DateTime.Today. La fonction est une méthode UDF volatile. Ajoutez le code suivant à Class1 :
[UdfMethod(IsVolatile = true)] public DateTime ReturnDateTimeToday() { return (DateTime.Today); }
<UdfMethod(IsVolatile := True)> _ Public Function ReturnDateTimeToday() As Date Return (Date.Today) End Function
Créer le projet
Dans le menu Générer, cliquez sur Générer la solution.
Vous devez trouver l'assembly SampleUdf.dll dans le répertoire dans lequel vous avez enregistré votre projet.
Code complet
L'exemple de code suivant est le code complet du fichier d'exemple Class1.cs décrit dans les procédures précédentes.
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
Voir aussi
Tâches
Étape 1 : création d'un projet et ajout d'une référence du fichier UDF
Étape 3 : déploiement et activation des fonctions définies par l'utilisateur (UDF)
Étape 4: test et appel des fonctions définies par l'utilisateur dans des cellules
Procédure : créer une UDF qui appelle un service Web
Concepts
Procédure pas à pas : développement d'une UDF avec code managé
Présentation des fonctions définies par l'utilisateur Excel Services