Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
intergnek
Partner - Contributor III
Partner - Contributor III

Dater un fichier au chargement

Bonjour,

J'ai un fichier qui vient chaque mois de Janvier à Décembre. Et chaque fois que le fichier arrive, je dois le charger dans Qlik Sense. Parmi les champs du fichier il n'y a pas de champ date. Alors comment m'arranger de sorte à reconnaître les fichiers de chaque mois après chargement?

Cordialement,

11 Replies
YoussefBelloum
Champion
Champion

Bonjour,

si la date du fichier est incluse quelque part dans le nom du fichier, tu peux utiliser plusieurs fonctions pour extraire cette partie et l'inserer dans un champ lors du chargement.

Exemple: left(), right(), textbetween() et plein d'autre, cela dépendra de tes nom de fichiers.

si tu n'a meme pas d'indication sur le nom de fichier, tu peux utiliser Date(Filetime()) qui te donnera la date de dernière sauvegarde du fichier.

je suis sur qu'il y a aussi pas mal d'autre solutions pour le faire

YoussefBelloum
Champion
Champion

si tu peux donner un exemple de nom de fichier, on pourra aller plus en détails

intergnek
Partner - Contributor III
Partner - Contributor III
Author

Tes solutions sont vraiment bonnes. Les noms des fichiers sont datés exemple:

Nomdufichier1_012017

Nomdufichier2_022017

etc.

YoussefBelloum
Champion
Champion

dans ce cas le plus simple c'est de faire ceci:

pour extraire la date du nom:

right(FileName(),6)

pour transformer ceci en date, tu peux encore faire ceci:

Date(Date#(right(FileName(),6),'MMYYYY'),'MMYYYY')


pour intégrer tout ca dans ton load:


table_name:

load

.

. ,

Date(Date#(right(FileName(),6),'MMYYYY'),'MMYYYY') as Doc_date,

.

.

FROM ...



essaye et dit moi

intergnek
Partner - Contributor III
Partner - Contributor III
Author

Exemple de fichier:

    VENTE:

    LOAD

        VILLE,

        STATUS,

        SOLDE,

        MONTANT

    FROM [lib://Connexion/Sales_012017.xlsx]

    (ooxml, embedded labels, table is Feuil1);

Je vois que je peux utiliser FileBaseName() pour extraire le nom du fichier.

intergnek
Partner - Contributor III
Partner - Contributor III
Author

Super Youssef !!

Mais c'est plutôt FileBaseName() qui marche à la place de FileName() car problème avec l'extension du fichier.

YoussefBelloum
Champion
Champion

oui j'avais complètement oublié l'extension du fichier qui du coup décale complètement la fonction right..

en tout ravi d'avoir aidé.

si tout est bon pour toi n'oublie pas de fermer ton topic en marquant les réponses utiles et correctes.

Bon courage

brunobertels
Master
Master

   bonjour

Du coup avec ta question précédente çà donne çà

VENTE:

    LOAD

        VILLE,

        STATUS,

        SOLDE,

        MONTANT,

Date(Date#(right(FileBaseName(),6),'MMYYYY'),'MMYYYY') as Doc_date

// te rajoutera un champs Doc_date dans chaque import


    FROM [lib://Connexion/Sales_*.xlsx] // Chargera tous les fichiers commençant par "Sales_"

    (ooxml, embedded labels, table is Feuil1);

intergnek
Partner - Contributor III
Partner - Contributor III
Author

Merci Bruno, un problème se pose.

EN utilisant Sales_*.xlsx, tous les fichiers (Sales_012017, Sales_022017, etc) se chargeront dans une même table et la valeur du champ date Doc_date sera commune à toutes les autres tables.

Du coup cette technique ne marchera que si et seulement si le dossier ne contient qu'un seul fichier Sale chaque fois.