A volte capita di dover lavorare con Files di Excel in ambiente .NET, effettuare un filtro sui dati o lavorare tra i vari fogli di lavoro.

excel.jpg

Qui sotto ho scritto una funzione che ritorna un dataset contenente un datatable con il risultato della query, un metodo facile e veloce per ritornare dati da Excel.

Implentare :

using System.Data.OleDb;

Funzione:

private DataSet ReadData(string kPath)
{
try
{
String sConnectionString =
“Provider=Microsoft.Jet.OLEDB.4.0;” +
“Data Source=” + kPath + “;” +
“Extended Properties=Excel 8.0;”;
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect =
new OleDbCommand(”SELECT * FROM [Foglio1$]“, objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1);
objConn.Close();
return objDataset1;
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message, “Errore”, MessageBoxButtons.OK,
MessageBoxIcon.Error);
return new DataSet();
}
}

Se la lingua del framework con il quale si lavora è Inglese è necessario sostituire nella query, Foglio1$ con Sheet1$.