Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Excel Services: Creare una custom UDF utilizzando i web services

In MOSS 2007 una delle novità più interessanti è rappresentata dagli Excel Services che permettono di rendirizzare direttamente sul web  i file excel creati con la versione 2007.

Già prima si poteva fare chiaramente l'upload di un file Excel ma ora la vera novità è la possibilità di leggere questo file direttamente dal web senza avere office installato sul client.

Inoltre una caratteristica importante è rappresentata dalla possibilità di inserire funzioni custom tramite le User Defined Function(UDF).

In questo post vi farò vedere com’è semplice creare una UDF ma anche quanto possono essere potenti.

1.             Creazione Progetto

Per creare una UDF ci basta utilizzare Visual Studio 2005 e creare un progetto di tipo Class Library, come prima cosa dobbiamo aggiungere la Reference alla DLL Microsoft.Office.Excel.Server.Udf che trovate nel percorso C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\ISAPI.

L’udf che voglio realizzare permette di calcolare il codice fiscale di una persona, per fare questo utilizziamo il web services che viene esposto da DotNetHell.

Quindi facciamo Add Web Reference e aggiungiamo il seguente url http://webservices.dotnethell.it/codicefiscale.asmx?WSDL

Successivamente inserisco lo using per i namespace dei due oggetti appena aggiunti:

using Microsoft.Office.Excel.Server.Udf;

using CodiceFiscaleUDF.it.dotnethell.webservices;

Per creare delle custom UDF bisogna “contornare” la nostra dll di due Attributi [UdfClass] e [UdfMethod]

Quindi come prima cosa inserisco l’attributo per la classe

namespace CodiceFiscaleUDF

{

    [UdfClass]

    public class Class1

    {}

}

Quindi nel costruttore inizializzo la classe CodiceFiscale del webservices

CodiceFiscale codice = null;

public Class1()

{

   codice = new CodiceFiscale();

           

}

 

Poi scrivo il metodo per il calcolo del codice fiscale. Tutti i metodi che si vogliono esporre come funzioni per excel devono avere l’attributo [UdfMethod]

[UdfMethod]

public string CodiceFiscale

(string nome,string cognome, string comune, DateTime data, string sesso)

{

   string codiceCF =  codice.CalcolaCodiceFiscale

(nome,cognome,comune,

 data.ToShortDateString(),sesso);

       return codiceCF;

           

 

 }

 

Stessa cosa per il  calcolo del Codice del Comune

[UdfMethod]

public string CodiceComune(string nomeComune)

{

           

string codComune =

      codice.CodiceComune(nomeComune);

            return codComune;

           

 }

 

2.             Impostazione Excel Services

Per impostare gli udf sugli excel services bisogna aprire la central administration

SharedServicesàUser-Defined function AssembliesàNew Item

Inserire il path della dll es: C:\CodiceFiscaleUDF.dll come location selezionatge File Path(nel caso volete inserirlo nella GAC dovete selezionare Global Assembly Cache) e selezionare Assembly Enabled.

La configurazione deve essere simile all’immagine seguente

 

Successivamente per poter utilizzare gli Excel Services bisogna impostare dove verranno salvati i file su Sharepoint. Per fare questo sempre negli SharedServices selezionare “Excel Services Trusted File Locations”, aggiungere un nuovo item, nell’address inserire il percorso della vostra site collection

Esempio http://devmoss, in location type lasciare selezionato Windows Sharepoint Services e abilitare il ckeck per Children Trusted.

 

3.             Pubblicazione file Excel

Come Ultimo passo è quello di creare il file excel e di pubblicarlo sui gli excel services.

Quindi andreamo ad inserire i dati così

A

B

C

D

E

F

G

Marco

Caruso

Roma

29/05/1979

M

=CodiceFiscale(A1;B1;C1;D1;E1)

=CodiceComune(C1)

 

In F1 e G1 excel vi mostrerà NAME? Perchè non riconosce le funzioni custom che abbiamo creato.

Inoltre per ogni cella inserita a1-b1 ecc eseguire i seguenti passi:

·        Selezionare la cella

·        Selezionare il tab Formulas

·        Selezionare Define Name

·        Inserire Nome

·        Poi premere ok

Ripetere le stesse operazioni per cognome, comune, data e sesso.

Una volta fatto questo inserirte una riga in testa per le intestazioni delle colonne.

Poi per pubblicare selezionare il tasto di officeàPublishàExcel Services

Il path dove pubblicarlo può essere http://devmoss/documents, prima di dare ok, selezionare Excel Services Option:

nel primo tab potete scegliere se pubblicare tutta la cartella di lavoro, solo un foglio o anche solo degli item, nel secondo tab più importante potete inserire i parametri che avete appena creato.

Quindi selezionateli tutti.

Una volta fatto premete ok.

L’immagine seguente è quello che viene visualizzato nel vostro browser.

Potete scaricarvi codice e file excel da qui.

 http://cid-1c2c16152e4779a2.skydrive.live.com/self.aspx/Excel%20Services/CodiceFiscaleUDF.zip

mercoledì, 07 mag 2008 Ore. 18.03
  • Views Home Page: 300.890
  • Views Posts: 827.495
  • Views Gallerie: 356.902
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003