Cellule vide lors de la lecture d'un fichier Excel par OLEDB
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 : :google: + oledb excel empty cells
Je pense avoir trouvé une solution. Ma chaine de connection était à l'origine celle ci :
Code:
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:
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 ?