Utilizzare Word tramite la tecnologia Net (VB.Net e C#)

In questo articolo vedremo come utilizzare Microsoft Word da una windows application tramite la tecnologia .Net, con il linguaggio Visual BAsic Net e C#.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

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;