Ciao a tutti.
Ho un quesito da porvi...stavo facendo un programmino stupido di estrazione di dati e devo prendere alcune informazioni da un file excel xlsx. Ho provato a fare una cosa del genere:
Creo la funzione che mi ritorna la stringa di connessione:
codice:
private static string setConnectionStringXlsx(string filename)
{
return @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=Excel 12.0 xml;HDR=YES";
}
faccio la funzione che ritorna il data reader:
codice:
public static OleDbDataReader readExcelFile(string query, string filename)
{
var connectionString = setConnectionStringXlsx(filename);
var connection = new OleDbConnection(connectionString);
using (var cmd = new OleDbCommand(query, connection))
{
connection.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
Ma mi solleva un'eccezione "Impossibile trovare l'ISAM installabile" quando faccio il connection.Open()...qualcuno sa il motivo / possibili soluzioni?
Ho provato anche a utilizzare il provider JET al posto di ACE e a mettere 8.0 al posto di 12.0 alla versione di Excel ma l'eccezione che solleva è "Nessun valore specificato per alcuni parametri necessari"
Grazie a tutti!