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