Partager via


Présentation des fonctions définies par l'utilisateur Excel Services

Dernière modification : mercredi 17 mars 2010

S’applique à : SharePoint Server 2010

Les fonctions définies par l'utilisateur sont des fonctions personnalisées qui étendent les fonctionnalités de calcul et d'importation de données d'Excel. Les développeurs créent des packages de calcul personnalisés pour fournir les éléments suivants :

  • Fonctions qui ne sont pas intégrées dans Excel.

  • Implémentations personnalisées dans les fonctions intégrées.

  • Flux de données personnalisés pour les sources de données existantes ou non prises en charge et flux de données spécifiques aux applications.

Les utilisateurs qui créent des classeurs peuvent appeler des fonctions définies par l'utilisateur dans une cellule par le biais de formules, par exemple, « =MyUdf(A1*3.42) », comme ils appelleraient des fonctions intégrées.

Les fonctions définies par l’utilisateur Excel Services permettent d’utiliser des formules dans les cellules pour appeler des fonctions personnalisées écrites en code managé et déployées dans Microsoft SharePoint Server 2010. Vous pouvez créer des fonctions définies par l’utilisateur pour effectuer les opérations suivantes :

  • Appeler des fonctions mathématiques personnalisées.

  • Obtenir des données de sources de données personnalisées dans des feuilles de calcul.

  • Appeler des services Web à partir des fonctions définies par l'utilisateur.

Création de fonctions définies par l'utilisateur en code managé

Une façon simple de créer une fonction définie par l'utilisateur en code managé Excel Services consiste à utiliser le modèle de bibliothèque de classes Microsoft Visual Studio 2005. Vous devrez référencer la bibliothèque de liens dynamiques UDF Excel Services, nommée Microsoft.Office.Excel.Server.Udf.dll, dans votre projet UDF en code managé.

La bibliothèque de liens dynamiques Microsoft.Office.Excel.Server.Udf.dll a été compilée à l'aide de Microsoft .NET Framework 2.0. Si vous utilisez Visual Studio 2003 pour créer votre fonction définie par l'utilisateur en code managé, vous ne pourrez pas référencer Microsoft.Office.Excel.Server.Udf.dll. Il est impossible pour un assembly créé avec une version antérieure de .NET Framework de référencer un assembly créé avec .NET Framework 2.0.

Attributs requis

Pour utiliser des fonctions personnalisées dans une classe en tant que classe UDF Excel Services, vous devez marquer votre classe UDF avec l'attribut Microsoft.Office.Excel.Server.Udf.UdfClass. Les classes qui ne sont pas marquées avec cet attribut dans l'assembly UDF seront ignorées par Excel Calculation Services car elles ne sont pas considérées comme des classes UDF Excel Services.

Pour utiliser des fonctions personnalisées dans une classe en tant que méthodes UDF Excel Services, vous devez marquer vos méthodes UDF avec l'attribut Microsoft.Office.Excel.Server.Udf.UdfMethod. Les méthodes qui ne sont pas marquées avec cet attribut dans l'assembly UDF seront ignorées car elles ne sont pas considérées comme des méthodes UDF Excel Services.

L'attribut Microsoft.Office.Excel.Server.Udf.UdfMethoda une propriété IsVolatile. La propriété IsVolatile permet de spécifier une méthode UDF 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 n'est pas volatile.

Emplacement du fichier Microsoft.Office.Excel.Server.Udf.dll

Une copie du fichier Microsoft.Office.Excel.Server.Udf.dll est disponible sur l’ordinateur sur lequel vous avez installé SharePoint Server 2010, à l’emplacement suivant :

[drive:]\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI

Déploiement et sécurité

Type d'emplacement de déploiement

Les assemblys UDF peuvent résider dans un répertoire local, un global assembly cache ou un partage réseau. Dans un scénario de batterie, le chemin du répertoire local doit être identique dans la batterie.

Identification des assemblys UDF

Vous pouvez afficher l'identité d'un assembly UDF à l'aide du chemin d'accès complet ou du nom fort de l'assembly Excel Calculation Services à appeler.

Par exemple, vous pouvez utiliser :

  • C:\UDFs\MySampleUdf.dll

  • \\MonServeurRéseau\UDFs\MySampleUdf.dll

  • CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38

Activation des assemblys UDF

Les assemblys UDF sont désactivés par défaut.

Chaque emplacement approuvé Excel Services a un indicateur AllowUdfs.

Notes

L’indicateur AllowUdfs est positionné par l’option Fonctions définies par l’utilisateur sur la page Excel Services Emplacements de fichiers approuvés. Pour savoir comment accéder à la page Emplacements de fichiers approuvés, voir Étape 3 : déploiement et activation des fonctions définies par l'utilisateur (UDF).

La valeur par défaut de AllowUdfs est false. Si AllowUdfs a la valeur false dans un emplacement approuvé spécifique, les classeurs de cet emplacement approuvé ne sont pas autorisés à appeler les fonctions définies par l'utilisateur.

Pour autoriser l'appel des fonctions définies par l'utilisateur à partir d'un emplacement approuvé spécifique, affectez la valeur true à AllowUdfs.

Si AllowUdfs a la valeur false au démarrage d'une session sur un classeur qui a des appels UDF dans cet emplacement approuvé, les appels UDF échouent. Si vous changez la valeur de AllowUdfs en true après le démarrage d'une session, les appels UDF échouent aussi. En effet les modifications dans l'indicateur AllowUdfs ne prendront effet que dans la session suivante, une fois la mise à jour de la base de données de configuration effectuée.

Autorisation de l'exécution des assemblys UDF

Si les administrateurs souhaitent autoriser l'exécution des assemblys UDF, ils doivent enregistrer tous les assemblys UDF, et autoriser les classeurs à appeler les fonctions définies par l'utilisateur en affectant la valeur true à l'indicateur AllowUdfs dans les emplacements approuvés.

Rechargement d'un assembly UDF

Pour recharger un assembly UDF, vous pouvez exécuter iisreset ou redémarrer le domaine d'application Excel Calculation Services.

Note AttentionAttention

La réinitialisation des services IIS met fin aux sessions actives.

Pour plus d'informations, voir Comment : activer les UDF.

Pour plus d'informations, voir Déchargement d'une application dans la mémoire (éventuellement en anglais) (https://msdn.microsoft.com/fr-fr/library/ms943779) .

Autorisation de sécurité d'accès au code par défaut pour les assemblys UDF

Par défaut, les assemblys UDF s'exécutent avec une autorisation totale.

Restriction de l'autorisation de sécurité d'accès au code pour les assemblys UDF

Si vous ne souhaitez pas qu'un assembly UDF spécifique s'exécute avec une autorisation totale, vous devez restreindre explicitement l'autorisation de sécurité d'accès au code pour celui-ci. Vous pouvez configurer les groupes de code et restreindre l'autorisation en utilisant l'outil de configuration de .NET Framework 2.0.

Les développeurs peuvent aussi utiliser les méthodes RequestMinimum et RequestOptional dans leur code pour s'assurer que les autorisations des assemblys UDF ne sont pas supérieures à celles nécessaires.

Pour plus d'informations sur la configuration de groupes de code, ainsi que sur les méthodes RequestMinimum et RequestOptional, voir les articles suivants sur le site MSDN :

Voir aussi

Tâches

Procédure : créer une UDF qui appelle un service Web

Procédure : Approuver un emplacement

Procédure : intercepter des exceptions

Comment : activer les UDF

Concepts

Procédure pas à pas : développement d'une UDF avec code managé

Forum Aux Questions sur les UDF Excel Services

Architecture d'Excel Services

Excel Services Alerts

Problèmes connus et conseils Excel Services

Méthodes conseillées pour Excel Services