Condividi tramite


VB NET Eseguire la somma dei dati di una colonna su foglio Excel da Vb Net.(it-IT)

A volte capita la necessità di dover eseguire dei calcoli con dei dati presi da altri file , in questo esempio vedremo come poter eseguire la somma dei dati di una colonna da un file excel.

Prendiamo in considerazione questo esempio di codice.

Private Sub  Button1Click(sender As Object, e As  EventArgs) Handles  btnCalcolaSomma.Click
       Const query As String  = "SELECT SUM(TOTAL) FROM [Foglio1$]"
 
       Using myConnection As  New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0; " & _
                "data source=E:\demo.XLSx; " & _
                "Extended Properties=Excel 12.0;")
           myConnection.Open()
 
           Using myCommand As  New OleDbCommand(query, myConnection)
               Dim result = myCommand.ExecuteScalar()
 
               If Not  result.Equals(DBNull.Value) Then
                   TextBox1.Text = result.ToString()
               End If
           End Using
       End Using
   End Sub

Prima cosa , creiamo una query Select con il nome della colonna del file excel tra parentesi tonde e il nome del foglio presente nel file excel su cui andare a prelevare le informazioni , assicurarsi che entrambi quindi nome colonna e nome foglio siano uguali a quelli contenuti nel file excel , onde evitare errori a runtime.

Utilizzeremo la classe  OleDbConnection   passando come argomento la stringa di connessione alla fonte dati , in questo esempio E:\demo.xlsx , successivamente la classe  OleDbCommand , la quale dispone del metodo ExecuteScalar , questo metodo restituisce la prima colonna della prima riga nel gruppo di risultati, o un riferimento Null se il gruppo di risultati è vuoto.
 
Poichè il metodo può restituire un valore null e necessario eseguirne un confronto e scartare tutti i valori null ed inoltre per visualizzare il risultato della somma all'interno del controllo TextBox e necessaria una conversione del valore da Object a stringa di caratteri , in quanto il valore restituito dal metodo ExecuteScalar e di tipo Object.

In conclusione supponendo di avere un file chiamato demo.xlsx con all'interno una colonna chiamata TOTAL con 10 righe tutte con valore 1 dobbiamo avere coma risultato della somma 10 come mostrato in figura.

Dopo la somma avremo invece questo risultato nell'applicazione Vb Net.