Régulièrement, je me retrouve à devoir dupliquer des listes de choix d’une colonne à l’autre, et devoir le faire à la main est relativement ennuyeux (surtout s’il y a les couleurs). Et récemment, j’avais toute une table à copier depuis un document de test vers un document de production
Je me suis donc fait un petit widget pour m’aider à faire cette copie
Ainsi ExportTable permet de :
Copier des colonnes depuis une table et les coller dans une autre
Copier les propriétés d’une colonne et les coller dans une autre colonne (pas forcément dans la même table)
Les colonnes et les propriétés à copier peuvent être sélectionnées finement
Les actions peuvent être opérées dans un même document ou dans des documents différents
Exemples de cas d’utilisation :
Copier/coller des colonnes entre un document de test et un document de production une fois la structure validée.
Copier/coller les choix d’une colonne de type Choix (textes et couleurs).
À propos des messages d’avertissement, il n’y a pas d’inquiétude particulière à avoir, simplement, durant mes tests avec la fonction grist.docApi.applyUserActions fournie par Grist, j’ai pu constater qu’elle n’était pas suffisamment protégée, et que si on lui fournissait des données mal formatées, cela pouvait corrompre la base. Normalement il n’y a plus de soucis, mais par exemple, une mise à jour future de Grist pourrait poser problème. Je préfère prévenir.
Génial comme contribution ! En revanche je viens de l’essayer mais je n’ai pas réussi : j’ai testé sur plusieurs type de colonne (une colonne texte puis une colonne formule), j’ai bien sélectionné la colonne dans les paramètres du widget, j’ai cliqué sur copier, j’ai bien eu le message m’indiquant que c’était copié dans le clipbaord, puis j’ai défini une colonne cible « $Colonne_cible » dans le widget et j’ai cliqué sur coller, mais la $Colonne_cible est restée vide…J’ai sans doute raté une étape, preneur de ton aide
Il y avait peut-être un problème d’export de fonctions, mais ça ne colle pas complètement avec la description du problème.
Toujours est-il, réessaye maintenant, et si ça ne marche toujours pas, voici plusieurs questions pour essayer de comprendre ce qui se passe :
Est-ce qu’il y a eu un message de confirmation après la copie ?
En faisant F12 dans le navigateur, et en regardant l’onglet console dans le panneau qui est apparu, est-ce qu’il y a des messages en rouges après avoir cliqué sur « Coller » ?
C’est un peu ce que je craignais, un problème de restriction sur le presse-papier.
C’est vrai que j’ai principalement utilisé Firefox pour le debug, et ils proposent une solution un peu plus intelligente, à savoir demander à l’utilisateur s’il valide la lecture du presse-papier, plutôt que refuser l’accès purement et simplement.
Bref, j’ai ajouté une ligne où on peut coller manuellement ce qui a été copié pour qu’ensuite quand on clique sur « Coller », le widget vienne lire le contenu de ce champ plutôt que le presse-papier.
C’est un peu moins user-friendly, mais je n’ai pas trop d’autre solution si on veut pouvoir copier entre document. Il faudrait peut-être que j’explore une solution basée sur les cookies.
Hello @Varamil, j’ai l’impression que ça fonctionne mieux avec ta modification, merci !
J’ai en revanche eu l’impression que le copier coller fonctionnait bien pour le bloc du haut (au niveau de la structure de la table), mais ne fonctionnait pas sur le bloc du bas (propriété de la colonne), j’ai le message d’erreur suivant :
J’ai l’impression que vous avez collé des données de « structure de table » (commençant par [[) dans une « propriété de colonne » (qui doit normalement commencer par {).
Bonjour Varamil !
Ah effectivement, c’est peut-être une erreur de ma part.
Si je comprends bien, la table du haut est pour les structures de table tandis que celle du bas est pour les propriétés de colonne, c’est bien ça ?
Dans mon cas, j’aimerais simplement copier-coller le style et la forme d’une colonne (ex : j’ai une colonne de type numérique qui s’affiche en rouge si le chiffre est inférieur à 10) → dans ce cas, je dois C/C le format propriété de colonne (tableau du bas) plutôt que structure de table ?
Hello !
Merci beaucoup pour le widget, j’en avais besoin et ça marche c’est génial
J’ai une suggestion pour l’UX car j’ai aussi galéré à comprendre comment l’utiliser :
Au début j’ai fait comme Raywan, j’avais naturellement choisi en haut la source et dans « target column » la colonne de destination, et j’ai eu l’erreur : « les données dans le presse-papier ne sont pas au format attendu ».
Après avoir lu la doc je ne comprenais toujours pas, je ne trouvais pas de section Target Table dans le bloc Column properties.
Puis j’ai compris qu’en fait, une fois qu’on fait le « copier », il faut retourner dans la première section Target Table pour changer la table, et cette fois-ci cliquer sur le bouton coller.
Je me permets de suggérer une possibilité d’amélioration, qui permettrait de choisir source et destination dans la même page :
Merci pour les retours.
J’avoue à la base c’était pour tester des choses et au final ça paraissait assez utile pour être partagé, mais c’est sûr que l’UI n’est peut être pas au top.
Quand j’ai un moment je verrais pour améliorer ça.