Il te reste toujours la possibilté d'attaquer les Fichier Excel comme une base de donnée. Ainsi, il n'y aucune assembly à installer.
Voici une méthode qui peut le faire :
///
/// Permet de charger le contenue d'une feuille excel dans une DataTable à partir du chemin et le nom de la feuille désirée
///
///
Chemin du fichier Excel
///
Nom de la feuille excel
///
DataTable contenant l'ensemble des celulles et lignes du fichier Excel. Si la feuille est vide le retour est égal à "Null"
///
Aucune gestion d'exception n'est faite à l'intérieur de cette méthode
public DataTable GetfichierFeuilleFichierExcel(string strCheminFichier, string strNomFeuilleExcel)
{
// Chaine de connexion
string strCnx = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strCheminFichier + ";Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;" + (char)34 + ";";
System.Data.DataTable dtRetour = null;
System.Data.OleDb.OleDbConnection oCnx = new System.Data.OleDb.OleDbConnection(strCnx);
System.Data.OleDb.OleDbCommand objCmdSelect = null;
System.Data.OleDb.OleDbDataAdapter objAdapter = null;
System.Data.DataSet oDs = new DataSet();
// vérification globale des données entrantes
if(strCheminFichier != string.Empty && strNomFeuilleExcel != string.Empty)
{
if(System.IO.File.Exists(strCheminFichier))
{
// ouvertur de la connexion
oCnx.Open();
// création de la commande
objCmdSelect =new System.Data.OleDb.OleDbCommand("SELECT * FROM ["+ strNomFeuilleExcel +"$]", oCnx);
objAdapter = new System.Data.OleDb.OleDbDataAdapter();
// on informe de l'instruction SELECT
objAdapter.SelectCommand = objCmdSelect;
// on execute la requete en spécifiant le protocole et on remplit le DataSet
objAdapter.Fill(oDs, "XLData");
// Vérification du dataset
if(oDs != null && oDs.Tables != null && oDs.Tables.Count > 0)
{
dtRetour = oDs.Tables[0];
}
else
{
dtRetour = null;
}
// Libération
oCnx.Close();
objCmdSelect.Dispose();
objAdapter.Dispose();
}
}
return dtRetour;
}