Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
sebbrunie1
Not applicable

Récupérer le nom de la table loadée

Bonjour,

est il possible de mettre dans un champ lord du load le nom de la table loadée?

Merci

Sébastien

Tags (1)
1 Solution

Accepted Solutions
brunobertels
Not applicable

Re: Récupérer le nom de la table loadée

Bonjour

Ok je comprends mieux ; j'ai un bout de script qui fait çà pour une de mes app ; a adapter suivant ton besoin :

// j'ai une connexion ODBC sur un fichier excel

LIB CONNECT TO 'NOM_CONNXION_ODBC';

//script pour récupérer nom des onglets

  XlsInfo:

  SQLTables;

  DISCONNECT;

  let var=NoOfRows('XlsInfo');

  // Pour chaque feuille du classeur

  FOR i = 0 to $(var)-1

  // sheetName = nom de la feuille

    let sheetName=subfield(peek('TABLE_NAME', i,'XlsInfo'),'$',1);

MyTable:

'$(sheetName)' as nom_onglet,

etc,

from ...

DROP Table XlsInfo;

8 Replies
brunobertels
Not applicable

Re: Récupérer le nom de la table loadée

Bonjour

Oui possible avec la fonction TableName() :

voir cette exemple qui devrait t'aider :

https://help.qlik.com/fr-FR/sense/3.0/Subsystems/Hub/Content/Scripting/TableFunctions/table-function...

//Iterate through the loaded tables

For t = 0 to NoOfTables() - 1

//Iterate through the fields of table

For f = 1 to NoOfFields(TableName($(t)))

Tables:

Load TableName($(t)) as Table,

TableNumber(TableName($(t))) as TableNo,

NoOfRows(TableName($(t))) as TableRows,

FieldName($(f),

TableName($(t))) as Field,

FieldNumber(FieldName($(f),

TableName($(t))),

TableName($(t))) as FieldNo

Autogenerate 1;

Next f

Next t;

sebbrunie1
Not applicable

Re: Récupérer le nom de la table loadée

Merci mais je parlais du nom de l'onglet du tableau excel que je charge. J'ai besoin de récupérer le nom de cette onglet et le mettre dans mon chargement

puttemans
Not applicable

Re: Récupérer le nom de la table loadée

nom de l'onglet as table_name?

Comme ça ne change pas vraiment, vous savez le coder dans le script de chaque table voulue.

Si jamais vous travaillez avec de variables dans le nom, vous copiez ça aussi.

e.g nom_de_longlet_$(date) as table_name;

brunobertels
Not applicable

Re: Récupérer le nom de la table loadée

Bonjour

Ok je comprends mieux ; j'ai un bout de script qui fait çà pour une de mes app ; a adapter suivant ton besoin :

// j'ai une connexion ODBC sur un fichier excel

LIB CONNECT TO 'NOM_CONNXION_ODBC';

//script pour récupérer nom des onglets

  XlsInfo:

  SQLTables;

  DISCONNECT;

  let var=NoOfRows('XlsInfo');

  // Pour chaque feuille du classeur

  FOR i = 0 to $(var)-1

  // sheetName = nom de la feuille

    let sheetName=subfield(peek('TABLE_NAME', i,'XlsInfo'),'$',1);

MyTable:

'$(sheetName)' as nom_onglet,

etc,

from ...

DROP Table XlsInfo;

sebbrunie1
Not applicable

Re: Récupérer le nom de la table loadée

et si ca change. Et je voudrais charger tous les onglets et je ne sais pas nécessairement le nom de l'onglet.

puttemans
Not applicable

Re: Récupérer le nom de la table loadée

Est-ce possible? Il faut toujours indiquer le nom de l'onglet dans le load-statement, sinon le programme ne retrouvera rien.

Si c'est une table qui existe déjà, là je comprends, mais alors vous n'avez plus d'onglets...

cje
Not applicable

Re: Récupérer le nom de la table loadée

Bonjour,

Voici le script qui va faire ce dont vous avez besoin.

// connexion au fichier excel via un driver ODBC à paramétrer au préalable dans votre panneau de configuration

ODBC CONNECT TO ;

// création d'une table Qlikview contenant toutes les définitions du fichier excel, dotn la liste des onglets dans la table TABLE_NAME

metadonnees:

sqltables;

// variables compteurs

let i=;

let vNbOnglets=NoOfRows('metadonnees')-1;

//création d'un moule de table vide qui va contenir les données des onglets

data:

load null()as champ1,null() as champ2 autogenerate 1;

// parcours de la table des métadonnées pour pouvoir récupérer les noms d'onglet un par un

for i=0 to $(vNbOnglets);

let vNomOnglet=peek('TABLE_NAME',$(i),'metadonnees');

//trace $(vNomOnglet);

//ODBC CONNECT TO ;

// ajout des enregistrements récupérés dans chaque onglet à la table data

// remarquer le nom de l'onglet passé dans une variable

concatenate (data)

data:

load champ1,champ2;

SQL SELECT champ1,champ2

FROM `C:\Temp\fichier excel.xlsx`.`$(vNomOnglet)`;

//

sebbrunie1
Not applicable

Re: Récupérer le nom de la table loadée

Merci tout marche bien.

Bonne fin de journée

Sébastien