Era da tanto che mi ero promesso di iniziare a fare qualcosa con i Visual Studio Tools for Office (VSTO), e in queste vacanze ho finalmente trovato il tempo.
Inizialmente ero veramente incuriosito dal prodotto, perchè lavorando con sharepoint sono sempre stato molto interessato dalle integrazioni che esistono tra i prodotti del pacchetto Office e il resto, e fin'ora non sono rimasto per niente deluso.
In passato avevlo lavorato un pò con le macro in VBA, e devo dire che con questo nuovo prodotto non c'è proprio storia... In pratica, è possibile attaccare degli assembly scritti e compilati con il .NET Framework 2.0 a dei documenti Word, Excel o scrivere degli add-in per Outlook.
Una volta installato infatti, VSTO aggiunge un nuovo insieme di template per Visual Studio:
- Excel Workbook
- Excel Template
- Outlook add-in
- Word Document
- Word Template
Ragazzi se ce ne sono da fare di cose... E' possibile scrivere codice in delle classi rappresentanti il singolo foglio di lavoro o l'intero workbook (la classe ThisWorkbook), iterare tra tutte le colonne e le celle di ogni foglio, inserire nuovi valori e delle funzioni all'interno delle celle e aggiungere all'interno di un qualsiasi foglio una buona parte dei controlli per windows form presenti nel .NET Framework 2.0, qunidi avere pulsanti, caselle di testo o di scelta e tanto altro pronti per interagire con il foglio attivo.
Chiaramente poi, è possibile effettuare una quantità di operazioni decisamente superiore a quanto era possibile fare con le Macro scritte in VBA.
Nell'integrazione con Excel, una volta creato un nuovo progetto, è possibile utilizzare la classe statica Globals per poter richiamare uno dei fogli presenti o l'intero workbook:
Globals.Foglio1.Cells[1, "A"] = "Hello VSTO !";
inoltre è possibile inserire del codice per gestire gli eventi di starup e di shutdown del file di Excel:
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisWorkbook_Startup);
this.Shutdown += new System.EventHandler(ThisWorkbook_Shutdown);
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
MessageBox.Show("Workbook startup !");
}
private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
{}
}
e inserire del controlli Windows Form all'interno dell'actions pane, presente sulla sinistra di ogni file del pacchetto Office 2003.
private void InternalStartup()
{
//...
System.Windows.Forms.Label copyright = new System.Windows.Forms.Label();
copyright.Font = new System.Drawing.Font("Verdana", 10, FontStyle.Bold);
copyright.ForeColor = Color.Orange;
copyright.Text = "Copyright by peppedotnet.it";
copyright.Height = 100;
copyright.TextAlign = ContentAlignment.BottomLeft;
Globals.ThisWorkbook.ActionsPane.Controls.Add(copyright);
}
In questi giorni è uscita la seconda edizione del runtime dei Tools for Office. Qui per il download.
Spero di riuscire a postare anche altro in questi giorni, perchè il prodotto ne vale davvero la pena.