Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Esempio di interazione tra LINQ e VSTO (con Visual Basic 2008)

Come ormai sapete, LINQ è quella novità del .NET Framework 3.5  che consente di eseguire interrogazioni su un gran numero di tipologie di sorgenti dati.

Tra le tantissime possibilità che abbiamo in .NET, possiamo utilizzare LINQ per interrogare, ad esempio, le proprietà di un documento di Microsoft Word 2007 all'interno di una soluzione a livello di documento creata con i Visual Studio 2008 Tools for Office.

Nel seguente esempio, prendiamo in considerazione un documento di Word 2007 all'interno del quale hanno partecipato due diversi revisori (nella fattispecie due account utente sul mio pc), ognuno dei quali ha aggiunto le proprie correzioni. Come potete vedere dalla figura seguente, per un revisore le correzioni sono mostrate in rosso, per l'altro in blu:

Dopo aver aggiunto un pulsante al documento, come in figura, ipotizziamo di voler estrarre e rendicontare solo le revisioni effettuate dall'utente "Alessandro". Il gestore dell'evento Click del pulsante può essere scritto in questo modo:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

        Dim revisioni = From revisione As Word.Revision In Me.Revisions _

                        Where revisione.Author = "Alessandro" _

                        Select revisione.Range.Text

 

        Dim risultato As String = String.Empty

 

        For Each rev In revisioni

            risultato += String.Concat(rev, Environment.NewLine)

        Next

 

        MessageBox.Show(risultato, "Alessandro ha eseguito le seguenti revisioni", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End Sub

Nella piccola query vista nel frammento di codice, viene interrogata la collection di revisioni. Per ciascuna revisione, laddove l'autore sia l'utente "Alessandro", ne viene selezionato il testo aggiunto. Una finestra di dialogo finale ci informa delle revisioni che questo utente ha eseguito.

Se questo piccolo e banale esempio non vi soddisfa per apprezzare l'utilità di questa tecnica, provate a pensare che in maniera analoga è possibile interrogare (oltre che tutte le collection esposte dai documenti di Word) i dati all'interno di una cartella di lavoro di Excel 2007, eseguendo anche dei collegamenti tramite la clausola Join di LINQ.

Alessandro

Print | posted on sabato 8 marzo 2008 19:57 | Filed Under [ Visual Basic Visual Studio Tools for Office LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET