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 :
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);
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.

J'ai tenté ceci
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);
et la bingo. Ca a marché.

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 ?