Utilizzare Microsoft Word in WPF tramite VB.Net e C#

In questo articolo vedremo come realizzare una semplice applicazione Word per Windows, utilizzando l’ambiente di sviluppo Visual Studio 2015 in ambito di Windows Presentation Foundation, il tutto con il linguaggio di programmazione Visual Basic Net e C#.

Creazione del progetto

Apriamo VS 2015, e dopo aver selezionato il linguaggio di nostro interesse selezioniamo applicazione di tipo WPF in Desktop applicazioni.
Inseriamo nella nostra form, due pulsanti, uno ci permetterà di scrivere del testo in un nuovo documento word, mentre l’altro di aprire l’ultimo file salvato e rilevare il testo contenuto.
La form dev’essere simile a quella mostrato in figura 1.

figura 1 - i pulsanti sulla form

Stesura del codice

Nell’evento click del pulsante con la dicitura “Nuovo” andremo ad istanziare un oggetto di tipo word application, con il quale, si creano a loro volto un oggetto di tipo word document per aggiungere un documento e poi scrivere del testo.
Qui di seguito tali dichiarazione in entrambi i linguaggi.

VB.Net
Private Sub BtnNuovo_Click(sender As Object, e As RoutedEventArgs)
Dim WordApp = Type.GetTypeFromProgID("Word.Application")
'Oggetto di istanza Word
Dim objectWord = Activator.CreateInstance(WordApp)
objectWord.Visible = True
'creo un nuovo docmento
Dim objectDoc = objectWord.documents.add()
'Imposto il testo
objectWord.Selection.TypeText("Prova di testo.")
Dim PercorsoNomeFile As String = Environment.CurrentDirectory + "\Prova.doc"
'salvo il documento
objectDoc.saveas(PercorsoNomeFile)
End Sub
C#
private void BtnNuovo_Click(object sender, RoutedEventArgs e)
{
var WordApp = Type.GetTypeFromProgID("Word.Application");
//Oggetto di istanza Word
dynamic objectWord = Activator.CreateInstance(WordApp);
objectWord.Visible = true;
//creo un nuovo docmento
dynamic objectDoc = objectWord.documents.add();
//Imposto il testo
objectWord.Selection.TypeText("Prova di testo.");
string PercorsoNomeFile = Environment.CurrentDirectory + "\\Prova.doc";
//salvo il documento
objectDoc.saveas(PercorsoNomeFile);
objectWord.Quit();
}

Come si vede dal frammento di codice precedente, dopo aver aggiunto il codice, tramite il metodo “TypeText” andiamo a scrivere del testo.
Con il metodo Saveas andiamo a salvare il file.
Per quanto invece riguarda aprire un documento salvato in precedebe il quale nome è presente nel menu dei file recenti, tramite la proprietà “Recent” della classe per la gestione dei documenti in word, possiamo dire quale documento recente utilizzare (tramite l’indice) e con il metodo “Open” aprirlo.
Qui di seguito un frammento di codice per le suddette operazioni.

Vb.Net
Private Sub BtnRecente_Click(sender As Object, e As RoutedEventArgs)
Dim WordApp = Type.GetTypeFromProgID("Word.Application")
'Oggetto di istanza Word
Dim objectWord = Activator.CreateInstance(WordApp)
objectWord.Visible = True
'Rilevo l'ultimo documento salvato
Dim objectDoc = objectWord.RecentFiles(1).Open()
'Per rilevare tutto il testo fino alla fine
objectWord.Selection.WholeStory()
'rilevo tutto il testo
Dim testoDocumento = TryCast(objectWord.Selection.Text, String)
Dim parole As String() = testoDocumento.Split(" ")
For Each parola As String In parole
MessageBox.Show(Convert.ToString("Testo: ") & parola)
Next
End Sub
C#
private void BtnRecente_Click(object sender, RoutedEventArgs e)
{
var WordApp = Type.GetTypeFromProgID("Word.Application");
//Oggetto di istanza Word
dynamic objectWord = Activator.CreateInstance(WordApp);
objectWord.Visible = true;
//Rilevo l'ultimo documento salvato
dynamic objectDoc = objectWord.RecentFiles(1).Open();
//Per rilevare tutto il testo fino alla fine
objectWord.Selection.WholeStory();
//rilevo tutto il testo
var testoDocumento = objectWord.Selection.Text as string;
string[] parole = testoDocumento.Split(new[] { ' ' });
foreach (string parola in parole)
{
MessageBox.Show("Testo: " + parola);
}
//Chiudo word
objectWord.Quit();
}

Il frammento di codice precedente, ha illustrato una tecnica  per aprire l’ultimo documento recente, rilevando il testo (tramite appunto la proprietà “Text”) e crea un array, tramite gli spazi presenti nel documento, che poi visualizzerà le singole parole a video. Il codice  di facile comprensione anche dovuta ai commenti tra le varie righe di codice.

Conclusioni

In questo articolo, è stata fornita al lettore una tematica introduttiva all’utilizzo di Microsoft Word in ambito di WPF. Articolo che permette di avvicinare i programmatori al primo utilizzo con il programma di videoscrittura più usato al mondo.
Altre tecniche di utilizzo si possono acquisire anche utilizzando le macro di VBA presente appunto in Word.

Commenti

Lascia una Risposta
captcha