martedì 17 febbraio 2009

Asp.Net Rilevare i dati da un file excel

Riporto l'articolo pubblicato per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_aspnet-rilevare-i-dati-da-un-file-excel_617.aspx




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

Nessun commento: