Macro Python dans Calc avec scriptforge

Bonjour,
Je ne suis pas un gros utilisateur de tableur, mais il m’arrive d’avoir des traitements plus complexes à réaliser. Je me suis donc décidé à apprendre l’utilisation des macros sous Calc.
Je suis sous linux Mint, ma version de LO est la 24.2.7.2 .
A partir de plusieurs vidéos présentation, je décide d’apprendre à utiliser ces macros en python (je suis plutôt très éclairé dans ce langage), avec scriptforge, qui me parait vraiment simple.

J’écris un premier script classique de test:

from scriptforge import CreateScriptService
doc = CreateScriptService(“Calc”)

def increment_cell(args=None):
value = doc.GetValue(“A1”)
value += 1
doc.SetValue(“A1”, value)

g_exportedScripts = (increment_cell, )

Que je place dans le répertoire approprié.
Dans calc, j’accède à ce script, je l’exécute et LO m’indique qu’il ne connait pas scriptforge (erreur d’import).
Pourtant, scriptforge semble venir par défaut avec LO lors de son installation d’après ce que je lis partout.

J’ai cherché une solution (installation manuelle), fouillé le WEB, mais je n’ai pas trouvé de réponse à mon problème.

Auriez-vous une idée du problème … Avant que je n’installe la toute dernière version de LO au cas où !

Merci d’avance.

Bonjour,

Je suis sous Linux Mint et j’ai la même version de Calc. Je vais essayer de tester les macros en python avec scriptforge.
Je ne sais pas s’il y a eu beaucoup de progrès depuis 2021 (Message d’un habitué de Ask, @Villeroy) : Scriptforge is a scam. 100 wrapper routines solve 100 problems out of 10,000. Just use this API as is.

Je suis très débutant en python, mais j’ai apprécié pyspread
pyspread is a non-traditional spreadsheet application that is based on and written in the programming language Python. The goal of pyspread is to be the most pythonic spreadsheet.

pyspread expects Python expressions in its grid cells, which makes a spreadsheet specific language obsolete. Each cell returns a Python object that can be accessed from other cells. These objects can represent anything including lists or matrices.

pyspread is free software. It is released under the GPL v3 licence.

Je viens de le réinstaller avec apt install pyspread (sudo) (pas la dernière version)
La dernière version s’installe avec pip dans un environnement virtuel.

Dans des cellules, j’ai pu tester (on peut aussi réaliser les import une seule fois avec le menu Macros à droite) ;

[i ** 2 for i in range(100) if i % 3]
import random; random.randint(1, 100)
import datetime; datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
import random ; random.choice(["roche", "papier", "ciseaux"])
"enMajuscules".upper()
import math; math.factorial(5)

On peut se servir de matplotlib pour des graphiques.
https://pyspread.gitlab.io/manual/macro_menu.html
Voir la documentation pour les possibilités et les limites.

Je voulais seulement partager, si tu ne connais pas ce logiciel libre. Je ne sais pas s’il est stable ou fiable, mais je le trouve plaisant. Il a des particularités. Pour chaque fichier enregistré, il y a un fichier de sécurité (.sig) qui va être créé dans le même dossier.

Il y a beaucoup moins d’options et de possibilités que LibreOffice Calc, mais python y est peut-être mieux intégré. Je ferais des expérimentations avant de m’en servir pour quoi que ce soit de sérieux.

Bonjour,
Je viens de désinstaller LO via le gestionnaire de logiciel de Mint. J’ai ensuite installé la dernière version via les paquets DEB téléchargés sur le site officiel, et cela semble fonctionner.

1 Like