Asp.Net Rilevare i dati da un file excel

In questo articolo vedremo come utilizzare Excel, per il carimento dei dati in una pagina Aspx.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

Vedremo come utilizzare in un' applicazione asp.net 3.5 un file Microsoft Excel , senza ricorrere a componenti o controlli, ma il tutto direttamente tramite le classi per la gestione dei dati, inoltre nel file excel verranno evidenziato un insieme di celle e verrà assegnato un nome.

Creazione del file excel

Si crea un nuovo file Microsoft Excel,  nel quale, nella prima colonna (A1) Mettiamo un titolo con il seguente valore “Nome”, mentre nella seconda colonna (B1) con il valore “Cognome”

Valorizziamo le righe successive inserendo dei nomi e cognomi a nostro piacimento.

Terminato ciò, selezioniamo tutta l’area di nostro interesse (le celle con i valori), compreso anche il titolo delle colonne (nome e cognome) . Andiamo alla voce inserisci e selezioniamo la voce nome. A questo punto, impostiamo come valore “dati”, confermiamo la finestra con il pulsante ok.

Stesura del codice.

A questo punto, si crea un nuovo progetto web,  nella cartella in cui è stato creato il progetto web, copiamo il file excel,p precedentemente creato.

Inseriamo nella pagina web, un controllo gridview, il quale avrà il compito di visualizzare i dati.

Per gestire il file excel, utilizzeremo lo spazio dei nomi relativo system.data.oledb.

Di seguito si riporta il frammento di codice delle suddette dichirazioni.

 

VB.Net
Imports System.Data
Imports System.Data.OleDb
C#
using System.Data.OleDb;
using System.Data;

Nel load della form, scriviamo il codice per il caricamento dei dati, da notare che la query, utilizzare come nome tabella “Dati” che è il nome impostato precedentemente all’area delle celle interessante.

Qui di seguito si riporta il frammento di codice, per il caricamento dei dati da un foglio Excel ad un controllo gridview.

VB.Net
' Connessione per il file excel
        Dim StrConnessione As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                    & "Data Source=" & Server.MapPath("ExcelDati.xls") _
                    & ";" & "Extended Properties=Excel 8.0;"
        ' Oggetto per la connessione
        Dim ConDati As New OleDbConnection(StrConnessione)
        ConDati.Open()
        'Eseguo la query
        Dim OldDtaDati As New OleDbDataAdapter("SELECT * FROM dati", ConDati)
        Dim DtsDati As New DataSet()
        'Carico i dati nel dataset
        OldDtaDati.Fill(DtsDati, "Dati")
        'Valorizzo il controllo gridView
        GridView1.DataSource = DtsDati.Tables(0).DefaultView
        GridView1.DataBind()
        'Chiudo la connessione
        ConDati.Close()
C#
// Connessione per il file excel
         string StrConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + Server.MapPath("ExcelDati.xls") +
                      ";" + "Extended Properties=Excel 8.0;";
 
       
        // Oggetto per la connessione
        OleDbConnection ConDati = new    OleDbConnection(StrConnessione);
        ConDati.Open();
        //Eseguo la query
        OleDbDataAdapter OldDtaDati = new    OleDbDataAdapter("SELECT * FROM dati", ConDati);
        DataSet DtsDati = new    DataSet();
        //Carico i dati nel dataset
        OldDtaDati.Fill(DtsDati, "Dati");
        //Valorizzo il controllo gridView
        GridView1.DataSource = DtsDati.Tables[0].DefaultView;
        GridView1.DataBind();
        //Chiudo la connessione
        ConDati.Close();


Conclusioni:

Si è visto come caricare i dati da un file Excel, senza l’uso di componenti o altri riferimenti, il tutto tramite le classi per la gestione dei dati. Il punto forte, è dovuto al fatto che abbiamo impostato al file excel, un nome ad un'area dati.

Tramite la parola donwload potete scaricare il file di esempio utilizzato in questo articolo.

Download