mercoledì 16 luglio 2008

Creare una tabella in Word 2007 tramite la tecnologia .Net (VB.Net e C#)

Riporto un articolo che ho scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/creare_documento-word-con-tabella-valorizzata.asp .


Introduzione:
In questo articolo, vedremo come utilizzare Word 2007, tramite il Framework 3.5, ed in particolare con i linguaggi VB.Net e C# , in ambiente Windows Application. In questo articolo viene riportata una tecnica di come creare in Microsoft Word 2007, una tabella, e dopo averla creata, valorizzare le singole celle con del testo.
Aggiunta del riferimento Word.
Dopo aver aggiunto come riferimento (progetto->aggiungi riferimento) Microsoft Word 12.0 object library, nella pagina com, della finestra che viene aperta, passiamo in visualizzazione codice.
In alto sopra ad ogni riga di codice, inseriamo il namespace per la gestione di Microsoft Office.
Di seguito si riporta tale frammento di codice.


VB.Net


Imports Microsoft.Office.Core


Imports WORD = Microsoft.Office.Interop.Word


Imports System.Type


C#


using Microsoft.Office.Core;


using WORD = Microsoft.Office.Interop.Word;



Nell'evento click di un pulsante (ma può essere inserito in qualsiasi altra parte) inseriamo il codice per la creazione di un documento word, tramite l'oggetto word, application e l'oggetto word.document, mentre con gli oggetti word.range word.cell e word.table, possiamo gestire le tabelle e le relative celle.
Qui di seguito si riporta un esempio di codice.
VB.Net


Private Sub BtnApriWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnApriWord.Click


Dim word As New WORD.Application()


word.Visible = True


'oggetto singolo documento


Dim document As WORD.Document = word.Documents.Add(Missing, Missing, Missing, Missing)


'creo la tabella


Dim range As WORD.Range = document.Range(Missing, Missing)


Dim table As WORD.Table = range.Tables.Add(range, 2, 3, Missing, Missing)


'array con i dati


Dim dati As String(,) = {{"EMa", "Marco", "Aurelio"}, {"EMa", "Bartoltino", "De Maffei"}}


'Effettuo un ciclo per l'array in modo che carico la tabella


For riga As Integer = 1 To 2


For colonna As Integer = 1 To 3


'creo ed imposto il valore di ogni singola cella


Dim cell As WORD.Cell = table.Cell(riga, colonna)


cell.Range.Text = dati(riga - 1, colonna - 1)


Next


Next


'imposto la formattazione della tabella, prima riga ed i vari bordi


table.Rows(1).Range.Bold = 1


table.AutoFitBehavior(Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitContent)


table.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle


table.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle


End Sub


C#


private void BtnApriWord_Click(object sender, EventArgs e)


{


WORD.Application word = new Microsoft.Office.Interop.Word.Application();


word.Visible = true;


object missing = System.Type.Missing;


//oggetto singolo documento


WORD.Document Document = word.Documents.Add(ref missing, ref missing, ref missing, ref missing);


//creo la tabella


WORD.Range range = Document.Range(ref missing, ref missing);


WORD.Table table = range.Tables.Add(range, 2, 3, ref missing, ref missing);


//array con i dati


string[,] dati ={ { "EMa", "Marco", "Aurelio" }, { "EMa", "Bartoltino", "De Maffei" } };


//Effettuo un ciclo per l'array in modo che carico la tabella


for (int riga = 1; riga < 3; riga++)


{


for (int colonna = 1; colonna < 4; colonna++)


{


//creo ed imposto il valore di ogni singola cella


WORD.Cell cell = table.Cell(riga, colonna);


cell.Range.Text = dati[riga - 1, colonna - 1];


}


}


//imposto la formattazione della tabella, prima riga ed i vari bordi


table.Rows[1].Range.Bold = 1;


table.AutoFitBehavior(Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitContent);


table.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;


table.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;


}



Conclusioni:
In questo articolo si è visto come utilizzare Microsoft Office Word 2007, tramite VB.Net e C# , in una Windows Application. Tramite la parola Download potete scaricare il file di esempio utilizzato in questo articolo.


Download




Nessun commento: