29/10/2009

Lire des données dans Excel avec ADO.NET

L'exemple de code ci dessous permet de lire les données d'une feuille (Feuil1) dans un fichier Excel (Classeur1.xls).
La feuille contient une première ligne avec nom, prenom,et age qui forme le titre des colonnes, Les lignes suivantes contiennent des données.

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\temp\\Classeur1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
            using (DbConnection connection = factory.CreateConnection())
            {
                connection.ConnectionString = connectionString;
                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT nom,prenom,age FROM [Feuil1$]";
                    connection.Open();

                    lstPers = new List();
                    using (DbDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            double d = dr.GetDouble(dr.GetOrdinal("age"));
                            lstPers.Add(new Person(dr["nom"].ToString(), dr["prenom"].ToString(), (Int32)d ));
                        }
                    }
                }
            }

Aucun commentaire: