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: 
Anonymous
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

1 Solution

Accepted Solutions
brunobertels
Master
Master

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;

View solution in original post

8 Replies
brunobertels
Master
Master

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;

Anonymous
Not applicable
Author

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
Specialist
Specialist

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
Master
Master

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;

Anonymous
Not applicable
Author

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

puttemans
Specialist
Specialist

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
Employee
Employee

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)`;

//

Anonymous
Not applicable
Author

Merci tout marche bien.

Bonne fin de journée

Sébastien