Emanuele Mattei
a- a+

Utilizzare Excel da Visual Basic Net (Parte II)

Pagina 2 di 2

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.

 

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Francesco
Hai dubbi su questo articolo?