Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUM OFFICE FAQs OFFICE TUTORIELS OFFICE LIVRES OFFICE SOURCES VBA ACCESS

Sharepoint 2007 : Excel Services

Par Ludovic Lefort (Site web) (Blog)
 

Administration, configuration et développement autour des Excel Services de Sharepoint 2007

0. Introduction
1. Configuration d'une "Trusted Location"
2. Création de notre classeur Excel
3. Publication du classeur
4. Les fonctions personalisées (User-defined functions)
5. Excel Services Web Part
6. Référence
7. Liens


0. Introduction

Dans beaucoup d'entreprises chaque département possède des tableaux Excel plus ou moins complexes utilisant des graphiques, des tableaux croisées dynamiques, etc ...
Anciennement le développeur qui voulait intégrer cela dans une application devait réécrire tout les algorythmes de calcul existants ... un vrai casse tête.
Grâce à Sharepoint 2007 et aux Excel Services il est possible d'utiliser directement les formules se trouvant dans un tableau.
Excel Services n'est disponible que dans la version MOSS de Sharepoint 2007
Les objectifs de cet article :

  • Apprendre les bases de l'administration et de la configuration
  • Apprendre à préparer et publier des feuilles Excel
  • Apprendre à créer des fonctions personalisées

1. Configuration d'une "Trusted Location"

Pour pouvoir être utilisés les classeurs Excel doivent se trouver dans une "Trusted Location". Autrement dit vous devez définir un emplacement comme étant sûr.
Cette configuration se fait dans la "Central Administration" de votre serveur MOSS 2007 dans la partie Shared Services
Cliquez sur le menu Trusted File Location du groupe Excel Services Settings

Cliquez sur Add Trusted File Location pour ajouter un nouvel emplacement
L'adresse peut être une liste Sharepoint, un webfolder ou un répertoire partagé sur le réseau. Dans notre exemple nous allons utiliser une Document Library.
Entrez l'adresse d'une Document Library :


Nous allons également ajouter un autre paramètre qui nous sera utile plus tard.

  • Allow User-Defined Functions --> Cochez la case

2. Création de notre classeur Excel

Tous les classeurs Excel ne peuvent pas être utilisés, il y a certaines limitations :

  • Le classeur ne peut pas contenir de code embarqué comme du VBA par exemple
  • Certains graphiques complexes ne sont pas affichés correctement
  • Il est impossible d'utiliser l'API d'excel dans Excel Services
Pour cet article nous allons créer une application Excel plus que basique qui nous permettra simplement de calculer une ristourne :

Ce classeur est téléchargeable ici

La calcul est basé sur deux paramètres passés à la feuille : Le prix de base et le montant de la ristourne, pour autoriser cela nous devons nommer les cellules qui contiendront ces valeurs.


3. Publication du classeur

Notre fichier est créé, nous devons maintenant le publier dans la document library que nous avons ajoutée aux Trusted Location dans le premier chapitre.
Dans le menu Publish d'Excel choisissez Excel Services

Avant de publier notre fichier nous devons définir les paramètres de la feuille de calcul, pour cela utilisez le bouton Excel Services Options

Ajoutez les paramètres dans l'onglet Parameters

Entrez l'adresse de votre document library et cliquez sur Save pour publier votre fichier

Après quelques secondes d'attente votre fichier Excel sera chargé dans votre navigateur avec un volet à droite pour les paramètres.
Cela nous permet de découvrir un autre avantage d'Excel Services : Les utilisateurs peuvent utiliser les applications publiées sans avoir Excel installé sur leur machine.


4. Les fonctions personalisées (User-defined functions)

Excel Services offre la possibilité d'écrire des fonctions personnalisé en .Net.
C'est un moyen très performant de contourner l'impossibilité d'utiliser du VBA dans la feuille
Grâce au User-defined functions(UDF) vous pouvez par exemple vous connecter à une base de données ou appeler un Web service.
Pour illustrer l'utilisation des UDF nous allons créer une fonction identique à celle utilisée dans la feuille pour calculer une ristourne mais au travers d'une library .net

Première étape : créons un projet de type Class Library dans Visual Studio.net. Je décide d'appeler mon projet CalculRistourne
Ajoutez une référence vers la library : Microsoft.Office.Excel.Server.Udf.dll qui par défaut se trouve dans C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI ainsi que le using suivant :

using Microsoft.Office.Excel.Server.Udf
La classe doit être marquée de l'attribut [UdfClass] et les fonctions par [UdfMethod]
voici à quoi doit ressembler votre classe une fois la méthode implémentée :

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Excel.Server.Udf;

namespace CalculRistourne
{
    [UdfClass]
    public class CalculRistourne
    {
        [UdfMethod]
        public double PrixAvecRirstourne(double Prix,double ristourne)
        {
            return (Prix * (1-(ristourne/100)));
        }

    }
}
Prochaine étape : signer l'assembly pour permettre son déploiement dans Sharepoint :

  • Clic droit sur le projet
  • properties
  • Signing
  • Choisir new dans la liste déroulante
  • Entrez le nom CalculRistourne.snk
  • décochez Protect my key with a password et cliquez sur OK
L'emplacement de la dll est totalement libre, il faut juste que l'administrateur Sharepoint ajoute une référence vers celle ci.
Pour cela ouvrez la Central Administration et allez dans les Shared Services
ensuite cliquez sur le menu User-defined function assemblies

Cliquez sur Add-User Defined function Assembly, Entrez le chemin complet vers votre dll, choisissez FilePath (il est également possible de déployer la dll dans la GAC) et cliquez sur OK

Il nous reste maintenant à tester notre fonction, pour cela ouvrez votre classeur excel et ajoutez l'appel à la fonction dans une des cellules : =PrixAvecRistourne(Base,Ristourne)

Le résultat obtenu est #NAME? ... pas de panique les UDF ne fonctionnent que dans le contexte Sharepoint, il faut donc re-publier le classeur et le tester dans Sharepoint :


5. Excel Services Web Part

Plutôt que d'afficher tout le classeur Excel il est possible de n'afficher qu'une partie de celui ci dans un WebPart.
Modifions notre classeur excel afin d'ajouter un graphique sur notre deuxième Sheet et publions le à nouveau :

Ajoutons maintenant un webpart de type Excel Web Access sur une des pages de notre site
Remarque : Si le webpart n'est pas présent dans votre liste c'est que la feature Office Sharepoint Server Enterprise n'est pas activée

Modifiez les proprietés du web part pour n'afficher que le graphique. Choisissez votre classeur Excel et l'élement à afficher : Chart 1 dans notre cas


6. Référence

Livre : Inside Microsoft Office Sharepoint Server 2007 par Patrick Tisseghem


7. Liens







Je tiens à remercier RomainVALERI pour la correction orthographique de cet article.



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Responsables bénévoles de la rubrique MS-Office : Christophe Lessirard et Maxence HUBICHE (MVP) - Contacter par EMail :
Vos questions techniques : forum d'entraide MS-Office - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.