Un cas assez marrant constaté aujourd’hui lors de chargements de fichiers Excel depuis une zone de dépôt réseau.
Tout commence avec un Foreach File container, qui charge tous les fichiers excel présents dans la zone avec le masque suivant : *.xlsx
Or, lorsque qu’un fichier « test.xlsx » est ouvert sur le réseau je ne peux pas le charger, j’ai donc mis en place les astuces présentes dans cet article. Sauf que je constate que ma boucle fait une itération de trop, me voici à me demander qu’est-ce qu’il essaie de charger.
Allons voir dans le dossier :
Rien de curieux jusqu’ici, je m’assure d’avoir affiché les fichiers et dossiers cachés ce qui est en effet le cas.
Deuxième piste, après avoir mis un breakpoint sur ma boucle je constate que le fichier incriminé s’appelle « ~$test.xlsx » et là en effet la mémoire me revient, excel peut créer un fichier system et là cela n’est plus un fichier caché classique.
Et là en effet, je vois mon fichier.
Malheureusement, les Wildcards disponibles pour définir le pattern des fichiers se limitent à * … Pour éviter d’essayer de charger ce fichier ~$ il faudra donc ajouter une expression vérifiant que le nom du fichier ne commence pas par ~$ à l’intérieur de notre boucle.
2 Comments
je trouve cette astuce super intéressante, je l’ai utilisé chez mon client aujourd’hui .
[…] J’avais déjà écrit un article sur le problème que pouvait représenter le chargement d’un fichier excel avec un foreach loop container depuis un espace réseau ici => http://sauget-ch.fr/2014/09/ssis-attention-au-chargement-de-fichiers-excel/ […]