LibreOffice Calc ofrece a los usuarios la posibilidad de crear sus propias macros en Python, sin embargo, estas macros solo pueden guardarse en el PC del usuario, es decir, en el propio programa. Desafortunadamente, LO Calc no tiene la capacidad incorporada de guardar scripts de Python en el propio archivo *.ods, lo que crea inconvenientes al trabajar con dichos scripts, ya que no pueden transferirse junto con los datos a otro usuario.
Este problema solo se puede resolver manualmente, es decir, volviendo a empaquetar el archivo *.ods y añadiendo los scripts de Python necesarios.
Así pues, averigüemos cómo incrustar scripts de Python en un archivo ODS para poder enviarlos a otros usuarios.
Todas las macros de Python se guardan en la siguiente carpeta:
%APPDATA%\LibreOffice\4\user\Scripts\python
Si las carpetas Scripts y python no existen, debe crearlas manualmente.
A continuación se muestra el script de Python para la macro
Para añadir una nueva macro, cree el archivo
from scriptforge import CreateScriptService
def HelloPython():
doc = CreateScriptService("Calc")
doc.SetValue("B8", "Hello Python!")
return None
Luego, cierre
Para transferir un script de Python a un archivo *.ods, es necesario descomprimirlo con cualquier archivador (7-zip, WinRAR, etc.) en una carpeta separada. Sí, es correcto, su archivo *.ods es simplemente un archivo de carpetas y archivos.
Luego, en esta carpeta descomprimida, cree una subcarpeta Scripts, y dentro de ella, una subcarpeta python. Como siguiente paso, copie el archivo
También es necesario especificar explícitamente la ruta al archivo donde se encuentra su macro de Python. Para ello, en la carpeta META-INF, edite el archivo manifest.xml, añadiendo la siguiente línea:
<manifest:file-entry manifest:full-path="Scripts/python/myPyScripts.py" manifest:media-type="application/binary"/>
Ahora, comprima el contenido de la carpeta previamente descomprimida con sus cambios en un archivo *.zip. Luego, cambie el nombre de este archivo, modificando su nombre (para no sobrescribir su archivo original) y la extensión de *.zip a *.ods.
También puede utilizar un conjunto predefinido de funciones y utilidades escritas en
Después de esto, esta funcionalidad estará disponible en todos los archivos que se abran en LibreOffice Calc.