[Résolu] Import de données brutes Excel avec ADO.net

Import de données brutes Excel avec ADO.net [Résolu] - C#/.NET managed - Programmation

Marsh Posté le 05-03-2008 à 12:51:56    

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


Message édité par strycore le 05-03-2008 à 13:32:56

---------------
Tweekers : Tweeks 4 Geeks
Reply

Marsh Posté le 05-03-2008 à 12:51:56   

Reply

Marsh Posté le 05-03-2008 à 13:32:35    

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  :D


---------------
Tweekers : Tweeks 4 Geeks
Reply

Marsh Posté le 09-05-2008 à 10:24:28    

Bonjour
 
J'ai le meme problème que toi, mais en fait IMEX =1 n'a pas reussi à corriger complètement mon problème.
 
J'ai des references à recuperer qui peuvent etre de longues suite de chiffres par exemple : 2100032000000
a chaque fois malheureusement, je recupere une string avec "2e10" ... en fait j'ai remarque que excel, meme si la suite d echiffres est bien specifiee en "texte", si la colonne est reduite, on obtient "2e10"
c'est tres embetant, car j'ai besoin de la vraie valeur!
 
je croyais qu'avec ADO on avait pas besoin d'avoir excel sur le poste mais j'ai l'impression que ce n'est pas si independant
 
pouvez-vous m'aider?
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed