Récupérer les identifiants de colonne d'une table

Bonjour.

Existe-t-il un moyen simple pour récupérer l’ensemble des identifiants de colonne d’une table dans Grist ?

J’essaye de construire un custom widget markdown pour faire des fiches de synthèse et j’ai un nombre assez important de colonnes dont le nom n’est pas toujours intuitif, avec des underscores rajoutés automatiquement à l’upload de la table ! :nerd_face:

J’admets que les intitulés de colonne sont déjà en eux même un peu complexes…

Exemple :

Bonjour,

Une façon de faire (ce n’est peut-être pas la plus simple…), c’est de faire un petit widget (c’est vite fait avec un custom widget builder), dele lier à la table à examiner et de mettre dans la fonction javascript qui est dans grist.onRecord(record => {...}) la ligne suivante : console.log(Object.keys(record));. cela va afficher la liste des noms des colonnes dans la console javascript et il est facile de la copier-coller ailleurs…

C’est pas hyper simple, mais s’il y a vraiment beaucoup de colonnes…

Autre option (plus simple) : Ajouter une colonne temporaire dans une table et y mettre la formule ' '.join([a for a in dir(Table_a_examiner.Record) if not a.startswith('_') and not a.startswith('#') ]) en mettant le séparateur souhaité entre les 2 premiers ' en en remplaçant le Table_a_examiner par le nom de la table

Alexandre

2 « J'aime »

Sinon, de mon coté quand j’ai besoin, j’ai tendance à aller dans « vue du code », juste il n’y a pas « que » les noms de colonnes quoi, mais bon, question d’habitude peut-être :slight_smile:

2 « J'aime »

Merci Alexandre et Amandine pour vos retours.

@AlexandreJ : mes compétences en Javascript sont pour l’instant… inexistantes ! J’ai sauvegardé ce code avant d’aller farfouiller dans la console javascript du navigateur si j’ai bien compris, mais sans succès. Je ne doute cependant pas que cela fonctionne, le problème est ici entre la chaise et le clavier.

@Amandine : c’est effectivement une façon de faire efficace également ! Et davantage dans mon champs de compétence.