mercoledì 2 novembre 2011

[C#] Gestire documenti Word con Interop e BookMarks

Descrizione :
Un esempio su come caricare un modello di documento .dot in sola lettura, compilarlo e salvarlo come .doc.

+ Articolo :

L'esempio è essenziale ma completo.
Carico un modello di documento .dot in sola lettura, individuo i bookmarks ( che nelle versioni ITA di Word sono i "segnalibri" ) e scrivo del testo in ognuno. Poi salvo con nome .doc, chiudo Word e rilascio le risorse.

N.B.: E' necessario aggiungere un nuovo Riferimento .NET a Microsoft.Office.Interop.Word, e richiamarlo nella Classe di utilizzo con apposita using :

...
using Microsoft.Office.Interop.Word;--> Codice :
...

            object m = System.Reflection.Missing.Value;
 
            object nomeFileModello = @"C:\modello.dot";
            object readOnly = true;
 
            object nomeFileOutput = @"C:\output.doc";
            object saveChanges = false;
            object originalFormat = WdOriginalFormat.wdWordDocument;
            object routeDoc = false;
 
            Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            wordApp.Visible = true;
 
            Document wordDoc = wordApp.Documents.Open (ref nomeFileModello , ref m, ref readOnly, ref m, ref m, 
                                                       ref m, ref m, ref m, ref m, ref m, ref m, ref m, 
                                                       ref m, ref m, ref m, ref m);
            wordDoc.Activate();
 
            // Esempio compilazione BookMarks
            foreach (Bookmark bmk in wordDoc.Bookmarks) 
            {
                MessageBox.Show(bmk.Name.ToString());
                bmk.Range.Text = "Stringa di testo per BookMark " + bmk.Name;
            }
 
            // Salvataggio / chiusura
            wordDoc.SaveAs(ref nomeFileOutput, ref m, ref m, ref m, ref m,
                           ref m, ref m, ref m, ref m, ref m, ref m, ref m,
                           ref m, ref m, ref m, ref m);
 
           wordApp.Quit(ref saveChanges, ref originalFormat, ref routeDoc);
 
           System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);

+ Fine Articolo.

Un Click su "Mi Piace" è il modo migliore per ringraziare l'autore di questo articolo.



0 commenti:

Posta un commento

 
Design by Free WordPress Themes Modificato da MarcoGG