Emanuele Mattei

Il Blog di Emanuele

My Links

Blog Stats

News

E-mail per eventuale contatto
E-mail






Supporta il blog offrendo una pizza o un caffè per informazioni fai click qui. Grazie :-)))




ClipArt del giorno:
Naviga attraverso più di 140.000 immagini e clip multimediali scaricabili gratuitamente, per arricchire i tuoi documenti Office.



E-mail per eventuale contatto
E-mail



Locations of visitors to this page



Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.

Il libro che sto leggendo:






Settembre 2007 Dicembre 2007
Marzo 2008
Giugno 2008
Settembre 2008
Dicembre 2008


Pagina Hall Of Fame

Powered by  MyPagerank.Net

Categorie Articoli

Archivio

Categorie Post

Immagini

Sezione siti

Blog Amici

Office

Net

Siti Gratuiti

Siti vari

Tools

Elenco Siti

Il tempo a Roma

Programmi Gratuiti e Portatili

Utilizzare Excel da vb.net

Utilizzare excel da visual basic net

 

 

 

Excel è un prodotto molto diffuso, sia in azienda che nell’utente finale, viene utilizzato per fare calcoli matematici molto complessi, grafici, e la possibilità di aggiungere formule personalizzate.

Tale programma è diviso in fogli di lavoro, nei quali è possibile svolgere diverse operazioni.

 

Introduzione:

Questo articolo affronterà in modo semplice, la possibilità di interagire con Excel da Visual basic.Net, ma la tecnica affrontata, può essere utilizzata anche per altri prodotti della famiglia office (word, power point, access, ecc), in particolare vedremo come inserire del  testo, nelle varie celle (intersezioni di righe e colonne), applicare un formato (grassetto, dimensione carattere, ecc) e inserire un grafico come mostrato nella

figura 1.

Può capitare che nei nostri programmi, dobbiamo interagire con excel, per far si, dobbiamo aver installato sulla macchina il prodotto Microsoft Excel.

 

 

 

Aggiungere il riferimento di Excel

Nel nostro progetto dobbiamo aggiungere il riferimento al componente excel, la procedura da seguire sarà la seguente.

Selezionare la voce aggiungi riferimento situata nel menu progetto, a questo punto si apre una finestra, nella quale sono visualizzati i nomi, le versioni ed il percorso dei componenti che sono installati sul nostro computer. Selezioniamo la linguetta Com e cerchiamo il componente Microsoft Excel 10.0 Object Library, dove 10 indica la versione di excel installata (in questo caso ho xp) 9 per la versione 2000 e così via per tutte le altre versioni, selezioniamo il componente e facciamo click sul pulsante seleziona, come mostrato in

figura 2 e sul pulsante ok per chiudere la finestra dando conferma.

In questo modo abbiamo aggiunto al nostro progetto un riferimento ad un componente che ci permette di utilizzare tale programma (excel nel nostro caso)  per compiere alcune operazioni, tale componente lo troviamo nella finestra esplora soluzione espandendo la voce Reference tramite il click sul simbolo + come mostrato in

figura 3.

 

 

 

Creazione degli oggetti

Prima di creare gli oggetti, bisogna capire com’è fatto il programma excel a livello di programmazione.

Esso è diviso in varie parti, la principale è l’applicazione, ossia il programma dove all’interno ci sono gli altri oggetti, la cartella la quale contiene un insieme di fogli (da 1 a n) in essi si trovano le varie celle utilizzate per fare i calcoli.

Bisogna creare tre oggetti uno che rappresenti l’applicazione, un altro che rappresenta la cartella di lavoro, e l’ultimo che rappresenta il nostro foglio di calcolo.

Come si vede di seguito il codice deve essere simile a quello riportato qui di seguito:

'creo l'oggetto excel application il programma excel.

        Dim XlaDati As Excel.Application

        'creo l'oggetto per la gestione della cartella di lavoro

        Dim XlwbDati As Excel.Workbook

        'creo l'oggetto per la gestione del foglio di excel(es. foglio uno, foglio due)

        Dim XlshDati As Excel.Worksheet

        'instanzio l'oggetto application

        XlaDati = CreateObject("Excel.Application")

        'gestione degli errori

        Try

            'lo rendo visibile

            XlaDati.Visible = True

            'aggiungo una nuova cartella excel

            XlwbDati = XlaDati.Workbooks.Add

            'Mi posiziono sul foglio attivo

            XlshDati = XlwbDati.ActiveSheet

 

 

 

 

Inserimento dei valori nelle celle

Mi creo un array il quale mi servirà per valorizzare alcune celle (posso utilizzare anche un dataset o altro), la proprietà name dell’oggetto sheet imposta il nome del foglio, la proprietà cells permette di identificare una cella, la quale a sua volta ha delle proprietà (grassetto, dimensione carattere, ecc) che  tramite l’assegnazione del numero di colonne e riga possiamo impostare.

Come si vede di seguito il codice dev’essere simile a quello riportato qui di seguito:

contatore di excel

            Dim IntConta As Integer

            'eventuali titolo array

            Dim StrTitoloExcel() As String = {"Cognome", "Nome", "Voto", "Città"}

            'Imposto il nome del foglio

            XlshDati.Name = “Esempio"

            'valorizzo la prima riga

            For IntConta = 0 To 3

                With XlshDati.Cells(1, IntConta + 1)

                    'inserisco il valore

                    .value = StrTitoloExcel(IntConta)

                    'lo rendo in grassetto

                    .font.bold = True

                    'gli do la dimensione

                    .font.size = 14

                    'rendo la cella di dimensioni uguali al testo (autosize)

                    .EntireColumn.autofit()

                End With

            Next

 

 

 

            'variabile che gestisce i dati anzichè un array possiamo utilizzare un dataset

            Dim StrNomi(3, 4) As String

            'per la colonna cognome

            StrNomi(0, 1) = "Foti"

            StrNomi(1, 1) = "Mattei"

            StrNomi(2, 1) = "Foti"

            'colonna nome

            StrNomi(0, 2) = "Olga"

            StrNomi(1, 2) = "Emanuele"

            StrNomi(2, 2) = "Pino"

            'per la colonna voti

            StrNomi(0, 3) = "8"

            StrNomi(1, 3) = "6"

            StrNomi(2, 3) = "4"

            'per la colonna città

            StrNomi(0, 4) = "Reggio Calabria"

            StrNomi(1, 4) = "Roma"

            StrNomi(2, 4) = "Milano"

            'variabile per la gestione delle righe

            Dim IntContaRighe, IntContaColonne As Integer

            'Ciclo per ogni riga

            For IntContaRighe = 0 To 3

                'ciclo per ogni colonna dove ci sono i dati

                For IntContaColonne = 1 To 4

                    'le matrici inziano con 0 per ciò più due per le righe di excel

                    With XlshDati.Cells(IntContaRighe + 2, IntContaColonne)

                        .value = StrNomi(IntContaRighe, IntContaColonne)

                        .EntireColumn.autofit()

                    End With

                Next

            Next

 

Inserimento del grafico

A questo punto siamo arrivati alla parte più complessa, quella di inserire un grafico.

Per prima cosa dobbiamo selezionare i valori che ci interessano, tramite il metodo select dell’oggetto workbook, fatto ciò, dobbiamo inserire un grafico e indicare il tipo di grafico tramite la funzione SetSourceData a questo punto dobbiamo indicare in quale foglio di excel dev’èssere inserito (nuovo o sullo stesso) tramite la funzione location . Sarà nostro interesse aggiungere titoli, legende, ecc.

Come si vede di seguito il codice dev’essere simile a quello riportato qui di seguito:

'Seleziono i dati da utilizzare nel grafico

            XlwbDati.Sheets("Dev Esempio").range("C2:C4", "B2:B4").select()

            With XlshDati.Application

                'aggiungo un grafico

                .Charts.Add()

                'il tipo di grafico

                .ActiveChart.ChartType = Excel.XlChartType.xl3DColumnClustered

                'i dati per il grafico

                .ActiveChart.SetSourceData(Source:=XlwbDati.Sheets("Esempio").range("C2:C4", "B2:B4") _

            , PlotBy:="xlColumns")

                'Indico la leggenda

                .ActiveChart.SeriesCollection(1).Name = "=""Voti"""

                'Imposto il grafico nella pagine corrente

                .ActiveChart.Location(Where:=Excel.XlChartLocation.xlLocationAsObject, Name:="Esempio")

                'Imposto Il titolo del grafico

                .ActiveChart.HasTitle = True

                .ActiveChart.ChartTitle.Characters.Text = "Esempio"

                'Imposto l'etichettà per l'asse x

                .ActiveChart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).HasTitle = True

                .ActiveChart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "Nomi"

                'imposto l'echtetta per l'asse y

                .ActiveChart.Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).HasTitle = True

                .ActiveChart.Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "Voti"

            End With

 

 

Tramite il metodo SaveAs dell’oggetto application, salvo il file:

'salvo il file

            XlaDati.ActiveWorkbook.SaveAs(Environment.CurrentDirectory & "\EsempioExcel.xls", , , , , , Excel.XlSaveAsAccessMode.xlExclusive)

 

 

 

 

 

 

 

Conclusioni

Questo articolo a fornito alcune tecniche di come utilizzare i prodotti microsoft office (nel nostro caso excel) da qualsiasi applicazione scritta in Visual basic.Net. MA nulla esclude che si possono fare operazioni più complesse o utilizzare contemporaneamente più prodotti office.

 

 


Download esempio

posted on domenica 12 giugno 2005 18.00