Interagire con Microsoft Word tramite Visual Basic Net e C# in ambiente Windows Application.
Introduzione
In questo articolo vedremo come utilizzare il programma di videoscrittura Microsoft Word tramite Visual Basic Net e C# in una nostra applicazione per Windows. Tramite la parola download è possibile scaricare il file di esempio, si fa presente che l'articolo illustra alcune funzionalità che si possono utilizzare con Microsoft Word tramite la tecnologia .Net.
Importare lo spazio dei nomi.
Per utilizzare Microsoft Word, occorre importare nel progetto il riferimento a Microsoft Word, dal menu progetto, selezionare la voce aggiungi riferimento, nella finestra che viene aperta, selezionare la linguetta COM e la voce Microsoft Word 11.0 Object Library, va ricordato che il numero fa riferimento alla versione installata di Word.
Dopo aver aggiunto al progetto tale componente, occorre importare lo spazio dei nomi Microsoft.Office.Interop, il codice dev'essere simile a quello riportato qui di seguito.
Gli oggetti da utilizzare.
Gli oggetti da utilizzare per interagire con Microsoft word, sono diversi, ma quelli fondamentali sono Word.application, che rappresenta l'applicazione word e Word.document che rappresenta il singolo documento.
Di seguito si riporta la dichiarazione di tali oggetti e come aprire un documento word.
Varie funzionalità
Di seguito vedremo alcune funzionalità che possiamo utilizzare con Word.
Per la stampa, possiamo utilizzare il metodo PrintPreview per visualizzare l'anteprima di stampa, o PrintOut per stampare un documento. Se invece vogliamo chiudere il documento senza salvare, utilizziamo il metodo close, passandogli come valore false. Per il salvataggio del documento, utilizzeremo il metodo save per visualizzare la finestra di dialogo oppure savaas per impostare un nome.
Di seguito si riporta il frammento di codice di tale operazione, supponendo che l'oggetto documento è stato già istanziato.
Operazioni sul testo
Conclusioni
In questo articolo abbiamo visto come utilizzare alcune funzionalità di Microsoft Word da una windows application tramite Visual Basic Net e C#, tramite la parola download è possibile scaricare l'esempio utilizzato nel progetto
Tramite la parola download è possibile scaricare il progetto di esempio
VB.Net
'Inserisco del testo
objDoc.ActiveWindow.Selection.InsertAfter(
"Inserimento testo")'Rilevo il carattere in posizione 3
MessageBox.Show(objDoc.ActiveWindow.Selection.Characters(3).Text)
'sostituisco il carattere in posizione 3
objDoc.ActiveWindow.Selection.Characters(3).Text =
"c"
'Inserisco un nuovo testo
objDoc.ActiveWindow.Selection.Text =
"Nuovo testo"
'seleziona il terzo carattere della frase
objDoc.ActiveWindow.Document.Characters(3).Select()
'rendo il secondo carattere in grassettto
objDoc.ActiveWindow.Document.Characters(2).Bold =
True
'rendo il quarto carattere in corsivo
objDoc.ActiveWindow.Document.Characters(4).Italic =
True
'cancello il testo selezionato
objDoc.ActiveWindow.Selection.Delete()
'imposto il titolo al documento
objDoc.ActiveWindow.Caption =
"Prova"
'rilevo quanti caratteri ci sono nel documento
MessageBox.Show(objDoc.ActiveWindow.Document.Characters.Count)
'chiudo word senza salvare
objWord.Quit(False)
C#
//Inserisco del testo
ObjDoc.ActiveWindow.Selection.InsertAfter(
"Inserimento testo");//Rilevo il carattere in posizione 3
MessageBox.Show(ObjDoc.ActiveWindow.Selection.Characters[3].Text);//sostituisco il carattere in posizione 3
ObjDoc.ActiveWindow.Selection.Characters[3].Text =
"c";//Inserisco un nuovo testo
ObjDoc.ActiveWindow.Selection.Text =
"Nuovo testo";//seleziona il terzo carattere della frase
ObjDoc.ActiveWindow.Document.Characters[3].Select();
//rendo il secondo carattere in grassettto
ObjDoc.ActiveWindow.Document.Characters[2].Bold =
Convert.ToInt16(true);//rendo il quarto carattere in corsivo
ObjDoc.ActiveWindow.Document.Characters[4].Italic =
Convert.ToInt16(true);//variabile per cancellare il testo
object unit = Missing.Value ;object count = Missing.Value;//cancello il testo selezionato
ObjDoc.ActiveWindow.Selection.Delete(
ref unit, ref count);//imposto il titolo al documento
ObjDoc.ActiveWindow.Caption =
"Prova";//rilevo quanti caratteri ci sono nel documento
MessageBox.Show(ObjDoc.ActiveWindow.Document.Characters.Count.ToString());
//oggetti per l'uscita dal programma
//chiudo wordref Salva, ref formato, ref Documento );
ObjWord.Quit(
object Salva = false;object formato = Missing.Value;object Documento = Missing.Value;
VB.Net
'anteprima
objDoc.PrintPreview()
'stampo
objDoc.PrintOut()
'salvo il documento
objDoc.Save()
'salvo con il nome
objDoc.SaveAs(
"C:\pippo.doc")'chiudo il documento senza salvare
objDoc.Close(
False)
C#
//anteprima
ObjDoc.PrintPreview();
//oggetti per l'anteprima
object Anteprima = Missing.Value;//stampo
ObjDoc.PrintOut(
ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima, ref Anteprima);//salvo il documento
ObjDoc.Save();
//variabile per il salvataggio con nome
object salva = Missing.Value;object NomeFile = "C:\\pippo.doc";//salvo con il nome
ObjDoc.SaveAs(
ref NomeFile, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva, ref salva);//oggetti per la chiusura
object Chiudi = false;object formato = Missing.Value;object Documento = Missing.Value;//chiudo il documento senza salvare
ObjDoc.Close(
ref Chiudi, ref formato, ref Documento);
VB.Net
'creo un oggetto di tipo word application
'instanzio la classe
objWord =
New Word.Application'Rendo visibile word
objWord.Visible =
True
'creo un nuovo documento
Dim objDoc As Word.Document'aggiungo un documento
objDoc = objWord.Documents.Add
'rendo attivo il documento appena creato
objDoc.Activate()
C#
//creo un oggetto di tipo word application
Word.
Application ObjWord;
//instanzio la classe word.application
ObjWord =
new Microsoft.Office.Interop.Word.Application();
//Rendo visibile word
ObjWord.Visible =
true;//creo un nuovo documento
Word.
Document ObjDoc;//oggetti per un nuovo documento
object Modello = Missing.Value;object NuovoModello = Missing.Value;object TipoDocumento = Missing.Value;object visibile = true;//aggiungo un documento
ObjDoc = ObjWord.Documents.Add(
ref Modello , ref NuovoModello, ref TipoDocumento, ref visibile);//rendo attivo il documento appena creato
ObjDoc.Activate();
Dim objWord As Word.Application
VB.Net
Imports
Microsoft.Office.Interop
C#
using
Word = Microsoft.Office.Interop.Word;