Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Chargement incremental fichier Excel

Bonjour à tous ,

J'ai besoin d'aide.

Je dispose d'un répertoire  C:\\Doc\History

composé des fichiers Excel :

20141204-TeamControl.csv

20141204-Control.csv

20141205-TeamControl.csv

20141205-Control.csv

20141208-TeamControl.csv

20141208-Control.csv

Pour info ses fichiers sont journaliers. Moi je ne veux que les fichiers -Control.csv.

Les Teamcontrol.csv sont à ignorer.

Je veux intégrer les fichiers -Control.csv

La règle de gestion est la suivante : intégrer le dernier fichier -Control.csv dans mon modèle QVW en ne prenant qu'en compte que les ajouts et les modifications apporter au fichier de la veille.

Pouvez m'aider à créer la boucle qui me permettra de l’intégrer à mon modèle.

Cordialement,

11 Replies
almamy_diaby
Creator
Creator

SET ThousandSep=' ';

SET DecimalSep=',';

SET MoneyThousandSep=' ';

SET MoneyDecimalSep=',';

SET MoneyFormat='# ##0,00 €;-# ##0,00 €';

SET TimeFormat='hh:mm:ss';

SET DateFormat='DD/MM/YYYY';

SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';

SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';

LET DATE_JOUR = PurgeChar(Date(Today(),'YYYY/MM/DD'),'/'); ///variable permettant la date du jour au format AAAAMMJJ

//// Chargement du dernier fichier. le fichier qui correspond au fichier de DATE_JOUR

Control:

LOAD

champ1,

champ2,

champN

from  C:\Desktop\$(DATE_JOUR)-Control.csv

   (txt, codepage is 1252, embedded labels, delimiter is ';', msq);

/// ajouter le dernier fichier aux autres deja charger. cela implique qu'on a

// deja créer  un qvd qui renferme les données des autres jours

// 'dossier qvd\Control.qvd' représente le fichier qvd qui contient les données  des autres jours

IF  FileSize('dossier qvd\Control.qvd')> 0 THEN

        Concatenate

      

  LOAD

  champ1,

  champ2,

  champN

  From [dossier qvd\Control.qvd](qvd);

ENDIF

STORE * FROM Control into 'dossier qvd\Control.qvd';

Not applicable
Author

Merci pour votre réponse.

Le script marche. Mais il y a un petit bémol. c'est un cas de figure que je n'avais pas prévu.

Mon appli se recharge chaque 1 heure et  le Fichier Xls du jour est Présent dans le répertoire à partir de 16 H.

Donc avant cette heure (16 Heure ) le script actuel ne fonctionne pas. Puisque  à la date du jour (20141208) il n'y pas de fichier avant 16 h.

Dc en attendant l'appli doit pouvoir fonctionner avec le dernier fichier control.XLS présent dans le repertoire (c'est à dire 20141207-Control.csv.

Avec le script tant que le fichier du jour n'est pas dans le répertoire , l'application se plante.

almamy_diaby
Creator
Creator

Pour indexer le fichier de le veille il faut ajouter -1 en face de Today()

LET DATE_JOUR = PurgeChar(Date(Today() -1,'YYYY/MM/DD'),'/'); ///variable permettant la date du jour au format AAAAMMJJ

Not applicable
Author

Merci encore Almany,

Mais à partir de 16 h qaund mon fichier du jour (20141208) sera présent dans mon repertoire est ce que le script sera toujours opérationnel ?

Parce que je retiens le fichier de la veille (ou le dernier fichier le plus recent ) dans le cas où mon fichier du jour n'est pas encore disponible .

almamy_diaby
Creator
Creator

utilise le code ci-dessous pour DATE_JOUR

LET DATE_JOUR = PurgeChar(Date(ReloadTime() - '15:59:00','YYYY/MM/DD'),'/'); ///variable permettant la date du jour au format AAAAMMJJ

Not applicable
Author

Merci encore,

Mais j'ai déjà utilisé cette technique.

Mais le client vient de me dire que le principe de fichier journalier n'est pas toujours respecté.

par exemple pour le mois de novembre , le dernier fichier date du 26 novembre et le premier fichier de décembre date du 01  Décembre, Par ailleurs ya de fichier en date du 3 Décembre.

Donc là je suis en train de créer une variable qui va me stocker la date du fichier le plus récent.

Par exemple aujourd'hui il n'aura pas de fichier pareil pour demain . Pour que l'appli tourne il faut charger le dernier fichier présent dans le répertoire. (Si le prochain fichier est celui du 20 Décembre par exemple le fichier à charger pour que l'application tourne devra être celui du 07 décembre).

Encore désolé pour ces imprécisions concernant les règles de gestions.

almamy_diaby
Creator
Creator

je pense que le script marche  toujours si le fichier est créé à la date indiquée peu importe s'il y a des jours où les fichiers ne sont pas générés

Not applicable
Author

Jeu de données.

Création du DVD à partir de 20141201.

Première de gestion : On intègre le fichier du jour

Deuxième de gestion : Si le fichier du jour n'est pas générer dans le répertoire on récupère le fichier le plus récent . c'est à dire 20141206.

almamy_diaby
Creator
Creator

est ce que le fichier du  6 est toujours créé 6