Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
demoustier
Creator
Creator

Boucle de chargement excel sans nom de table

Bonjour,

j'ai une boucle de chargement me permettant de récupérer les noms de fichiers excel d'un repertoire, et ensuite de charger les données de ces fichier.

le problème survient quand le nom de la table que je veut charger est propre à chaque fichier

ex:

FROM

[$(namefile)]

(ooxml, embedded labels, header is 4 lines, table is [closed ticket (277)])

puis

FROM

[$(namefile)]

(ooxml, embedded labels, header is 4 lines, table is [closed ticket (50)])

Récupérer le nom de la table pour chaque fichier est trop lourd. Je me demandais donc si on pouvait utiliser les caractères générique ou une fonction 'like' pour avoir l'équivalent de

FROM

[$(namefile)]

(ooxml, embedded labels, header is 4 lines, table is [closed ticket (*)])

8 Replies
flochi75
Creator III
Creator III

Bonjour Benjamin,

essaie ça :

Dynamically Loading Multiple Excel Files

Florent

demoustier
Creator
Creator
Author

Bonjour,

effectivement cela marche. Le hic est que ca plombe les perfs de rechargement et que ma boite ne veut pas installer le connecteur qui va bien sur le serveur....:-)

je suis donc obligé de trouver une autre astuce....que je cherche encore.

Hormis ca, cette méthode est effectivement top.

flochi75
Creator III
Creator III

bon courage.

Florent.

flochi75
Creator III
Creator III

j'y pense :

notre informaticien nous a fait un .vbs pour concaténer des fichiers .hpr

peut-être peutx tu t'en inspirer pour concaténer en amont tes tables .xls ??

ci-dessous la syntaxe :

Dim fso, f, fc, fileWriter

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder("f:\anapath")

Set fc = f.Files

Set fileWriter = fso.OpenTextFile("f:\anapath\~cumul.txt", 2, True)

For Each f1 in fc

  if right(f1.name,4) = ".hpr" then

  'premiere lecture pour aller chercher le no de dossier dans la 2e ligne

  Set flecture = fso.OpenTextFile (f1.path, 1)

  ligne1 = flecture.ReadLine

  ligne2 = flecture.ReadLine

  testdm = instr(1,ligne2, "1|DM")

  if testdm = 0 then

  nodossier = mid(ligne2,7,9)

  else

  nodossier = mid(ligne2,15,9)

  end if

  '2em lecture pour avoir le no de dossier devant toute les lignes meme la 1er en H avec no de dossier lu precedement

  Set flecture = fso.OpenTextFile (f1.path, 1)

  Do While Not flecture.AtEndOfStream

  ligne = flecture.ReadLine

  'if left(ligne,1) <> "H" then

  if left(ligne,1) = "P" then

  testdm = instr(1,ligne, "1|DM")

  if testdm = 0 then

  nodossier = mid(ligne,7,9)

  else

  nodossier = mid(ligne,15,9)

  end if

  end if

  fileWriter.WriteLine (nodossier & "|" & ligne)

  'end if

  loop

  end if

Next

msgbox "c est fini"

Florent

t_moutault
Contributor III
Contributor III

Bonjour Benjamin,

voici ce que j'utilise :

// SOUS PROGRAMME : liste les fichiers d'un répertoire

SUB ListeFichiers(Root)

  //Récupération des fichiers de type xls

  FOR Each File in filelist (Root&'\*.xls' )

  //Traitement si fichier non vide

  IF FileSize('$(File)') > 0 then

  TABLE:

  LOAD *

  FROM

  [$(File)]

  (biff, embedded labels, table is [FEUILLE$]);

  ENDIF

  NEXT File

  //Traitement des sous dossiers

  FOR Each Dir in dirlist (Root&'\*' )

  CALL ListeFichiers (Dir)

  NEXT Dir

ENDSUB

//Exécution du sous programme

CALL ListeFichiers ('\\serveur\repertoire\dossier');

demoustier
Creator
Creator
Author

ouch....va falloir du temps pour que je comprennes 😄

Le truc est qu'en plus d'avoir des noms de feuil différents, les fichiers ont en + plusieurs feuilles...du coup, je ne sais pas trop comment va se passer une éventuelle concaténation...

mais ca se tente !

Merci !

demoustier
Creator
Creator
Author

Bonjour Thomas,

c'est effectivement ce que j'utilise pour charger plusieurs fichiers excel ayant des noms différents mais avec la même structure (même nom de Feuill " [FEUILLE$]"). Mon problème ici est que chaque fichier à un nom de Feuille différents.

cdlt

cje
Employee
Employee

Bonjour,

Voici un lien vous permettant de charger N fichiers Excel contenant X feuilles distinctes.

Pour que ça marche, créer un lien ODBC Excel vers votre répertoire contenant les fichiers. Puis utiliser ce lien dans QlikView/Sense.

Du pur script Qlik.

https://community.qlik.com/docs/DOC-14663

Cdt

Christophe Jouve

Principal Solution Architect

Direct: +33 1 55 62 65 54

Mobile: +33 6 76 24 22 47

Email: Christophe.Jouve@qlik.com

Qlik

France Headquarters Office,93 avenue Charles de Gaulle

92200 Neuilly sur Seine

qlik.com<http://www.qlik.com/>

Téléchargez gratuitement QlikView

http://www.qlikview.com/fr/explore/experience/free-download

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.