Bonjour,
Vous connaissez certainement le problème de la lecture d'un fichier Excel par OLEDB qui retourne des cellule vide à cause du mécanisme de recherche de type de donnée propre à excel
Sinon : + oledb excel empty cells
Je pense avoir trouvé une solution. Ma chaine de connection était à l'origine celle ci :
et malgré toutes mes tentatives, je n'arrivais jamais à récupérer le jeu de données complet, il y avait toujours des cellules vides.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strConn = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;ImportMixedTypes=Text"";", FichierImport);
J'ai tenté ceci
et la bingo. Ca a marché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strConn = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;ImportMixedTypes=Text"";", FichierImport);
Le hic c'est que avec HDR=NO, le dataset que j'obtiens a des nom de colonnes genre F1, F2... et la 1èere ligne de mon dataset contient donc les "vrais" nom de colonnes.
Je fais donc une 1ere requete qui me retourne la 1èere ligne donc avec les nom de champs.
Je fait une une moulinette qui génère une nouvelle clause SELECT avec des
alias pour chaque champs
j'execute une 2nd requete avec la clause généré avant et je rempli mon dataset avec ca
Que pensez vous de cette solution ?
Partager