Importer des données brutes d'un fichier Excel [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
5 mars 2008
-
Messages postés
2
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
5 mars 2008
-
Bonjour,
J'ai réussi a effectuer des imports de feuilles excels via ADO.net mais maintenant plusieurs problèmes se posent :
-La première ligne de la feuille excel est utilisée pour attribuer des noms de colonnes , je ne souhaite pas que cela soit le cas, la première ligne doit être considérée comme une ligne de données similaire aux autres
- Les données sont typées : si une colonne contient des valeurs numériques puis des valeurs texte ces dernières sont ignorées (elles ne sont pas affichées dans mon GridView) . Les données que je souhaite importer sont hétérogènes, et je souhaiterais qu'elles soient toutes traitées avec un type String pour ensuite valider les données et effectuer les conversions de type par moi même.

Voici le code utilisé pour importer le fichier Excel :

        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/dev/IRI/grandvolumes2.xls;Extended Properties=Excel 8.0;";
        OleDbConnection objConn = new OleDbConnection(connectionString);
        objConn.Open();
        OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [exemple$]", objConn);
        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
        objAdapter1.SelectCommand = objCmdSelect;
        DataSet objDataset1 = new DataSet();
        objAdapter1.Fill(objDataset1);
        objConn.Close();
        GridView1.DataSource = objDataset1.Tables[0];
        GridView1.DataBind();

Merci d'avance pour votre aide

2 réponses

Messages postés
2
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
5 mars 2008

Bon j'ai trouvé , il faut changer la chaine de connection de ceci :

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/dev/IRI/grandvolumes2.xls;Extended Properties=Excel 8.0;"

vers ceci :


"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/dev/IRI/grandvolumes2.xls;Extended Properties='Excel 8.0;HDR=No;IMEX=1'"


Donc :
-Rajouter des simples quotes pour pouvoir mettre plusieurs arguments a la valeur Extented Properties
-HDR=No pour dire que la première ligne contient des données
-IMEX=1 pour dire que les données sont de type hétérogène.

J'ai déjoué la fourberie
Messages postés
2
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
5 mars 2008

Merci beaucoup.
J'étais justement en pleine recherche sur ce sujet.
Je viens d'économiser quelques heures grâce à ce post