Una funzione veloce per leggere i dati da un file excel:
private static DataTable LoadExcel(string fileName)
{
var dt = new DataTable();
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"", fileName);
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
var sheetName = sheets.Rows[0]["TABLE_NAME"].ToString();
cmd.CommandText = string.Format("SELECT * FROM [{0}] ", sheetName);
var adapter = new OleDbDataAdapter(cmd);
adapter.Fill(dt);
}
}
return dt;
}