Importer des données brutes d'un fichier Excel

Résolu
strycore Messages postés 2 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 5 mars 2008 - 5 mars 2008 à 11:21
cs_cfs Messages postés 2 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 5 mars 2008 - 5 mars 2008 à 15:46
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

strycore Messages postés 2 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 5 mars 2008
5 mars 2008 à 13:31
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
3
cs_cfs Messages postés 2 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 5 mars 2008
5 mars 2008 à 15:46
Merci beaucoup.
J'étais justement en pleine recherche sur ce sujet.
Je viens d'économiser quelques heures grâce à ce post
0
Rejoignez-nous