Je suis intéressé pour la récupération et l’envoie de données à Framacalc / Ethercalc en utilisant une commande CURL.
J’ai essayé sans succès et je ne vois pas dans le code (framacalc · GitLab) la parti API qu’on retrouve dans Ethercalc .
J’ai lu que certains on réussit à récupérer les données. Avez vous aussi pour envoyer les données et pu mettre à jour des cellules ? Si oui je suis preneur.
J’ai été capable d’envoyer et de recevoir des données avec des commandes cURL avec Framacalc.
Avant toutes choses, j’imagine que Framasoft a mis des limites, mais ne pas abuser de l’API. C’est peut-être mieux d’envoyer des commandes groupées que de lancer cURL plusieurs fois rapprochées pour des cellules individuelles.
Pour Framacalc :
ID = identifiant du tableur dans la barre d’adresse.
/_/ avant l’ID est important quand il est mentionné
Pour recevoir
SocialCalc Spreadsheet Control Save
https://lite.framacalc.org/_/ID
ou
curl https://lite.framacalc.org/_/ID
Télécharger le CSV
curl -O https://lite.framacalc.org/ID.csv
Télécharger le .json
curl -O https://lite.framacalc.org/ID.csv.json
En ligne ou avec cURL, afficher les cellules en JSON
https://lite.framacalc.org/_/ID/cells
Cellule A1 seulement
https://lite.framacalc.org/_/ID/cells/A1
Pour envoyer
Envoyer le texte "Bonjour à tous" à la cellule A5
curl -H "Content-Type: application/json" -X POST https://lite.framacalc.org/_/ID -d '{"command":"set A5 text t Bonjour à tous"}'
Envoyer le nombre 455 à B2
{"command":"set B2 value n 455"}
Envoyer plusieurs données à la fois (les commandes sont séparées par \n)
Pour l'instant je n'ai pas trouvé plus lisible.
curl -H "Content-Type: application/json" \
-X POST https://lite.framacalc.org/_/ID \
-d '{"command":"set A1 text t Animal\nset A2 text t Canard\nset B2 value n 5"}'
Effacer A5
{"command":"set A5 empty"}
Effacer les lignes A1 à A5
{"command":"deleterow A1:A5"}
Mettre le texte des cellules en bleu
{"command":"set sheet defaultcolor blue"}
Largeur de la colonne A à 500.
{"command":"set A width 500"}
Formule B2*2
{"command":"set C1 formula B2*2"}
Couleur de fond de cellule
{"command":"set A5 bgcolor green"}
Si A1 = Animal et B2 = Lapin
Les cellules A1 et B2 sont fusionnées, la valeur de A1:B1 sera Animal
{"command":"merge A1:B1"}
Pour défusionner
La valeur de B2 ne réapparaît pas
curl -H "Content-Type: application/json" -X POST https://lite.framacalc.org/_/ID -d '{"command":"unmerge A1:B1"}
Il existe d’autres solutions en partie libres disposant d’API mieux documentées (Baserow, Grist) avec beaucoup plus de possibilités, mais cela va avec une plus grande complexité. Ces deux solutions offrent des plans gratuits pour tester ou on peut les installer.
Merci pour ce retour. Je viens de faire les premiers tests et ils fonctionnent parfaitement.
Ca va m’aider à préparer une appli mobile (gratuite et open source) qui pourra envoyer ses données (compteurs électrique / eau), sur une feuille framacalc, pour le suivi conso. Je vous en ferai part si ca vous intéresse.