Récupérer le type d'une colonne

Bonjour,

Je cherche une méthode pour récupérer le type de colonne d’une table via un widget custom builder lié à la table pour pouvoir modifier l’affichage si la colonne est texte ou choice ou autre etc…

Bonjour,

c’est cette fonction qui donne les infos sur les colonnes :
grist.docApi.fetchTable('_grist_Tables_column')

Le code ci-dessous permet de récupérer les métadonnées d’une table :


  <html>
  <head>                                                                                                                                                      
    <script src="https://docs.getgrist.com/grist-plugin-api.js"></script>
  </head>
  <body>
    <pre id="output"></pre>
    <script>
      grist.ready({ requiredAccess: 'full' });

      (async () => {
        // Récupérer le nom de la table courante
        const table = await grist.getTable();
        const tableId = await table._platform.getTableId();

        // Récupérer les tables système
        const tables = await grist.docApi.fetchTable('_grist_Tables');
        const columnsTable = await grist.docApi.fetchTable('_grist_Tables_column');

        // Trouver l'ID numérique de la table
        const tableRef = tables.id[tables.tableId.indexOf(tableId)];

        // Extraire les colonnes de cette table
        const metadata = {};
        for (let i = 0; i < columnsTable.parentId.length; i++) {
          if (columnsTable.parentId[i] === tableRef) {
            const colId = columnsTable.colId[i];
            if (colId !== 'id' && colId !== 'manualSort' && !colId.startsWith('gristHelper')) {
              metadata[colId] = {
                type: columnsTable.type[i],
                label: columnsTable.label?.[i] || colId
              };
            }
          }
        }

        document.getElementById('output').textContent = JSON.stringify(metadata, null, 2);
      })();
    </script>
  </body>
  </html>

Ce code :

  1. Récupère le nom de la table courante via grist.getTable()
  2. Charge les tables système _grist_Tables et _grist_Tables_column
  3. Filtre les colonnes appartenant à la table courante
  4. Retourne un objet avec l’ID de colonne, son type et son label

J’ai mis l’exemple minimal ici : https://grist.incubateur.anct.gouv.fr/o/tutos-templates/doc/rvyQtf7ECqp3~2oUff4Eav9EYt2p3HjFyWc~6921/p/8