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.
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.
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
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;
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#
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;