TOP

Cómo incrustar un script de Python en un archivo ODS

Descripción

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.


Python Folder

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.

Código de macro de Python

A continuación se muestra el script de Python para la macro HelloPython, que escribe la frase "Hello Python!" en la celda "B8" en LibreOffice Calc.

Para añadir una nueva macro, cree el archivo myPyScripts.py y ábralo con Notepad++ (o Windows Notepad) y copie el siguiente texto en él:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

Luego, cierre Notepad++ y vuelva a LibreOffice Calc. Para ejecutar este script, abra el menú Tools - Macros - Organise Macros - Python..., seleccione "My Macros", expanda la carpeta "myPyScripts" y, seleccionando HelloPython, haga clic en el botón Run.

Transferencia de script de Python a archivo ODS

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 myPyScripts.py a la carpeta python.

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.

Uso de la extensión

También puede utilizar un conjunto predefinido de funciones y utilidades escritas en Python instalando la extensión YLC Utilities.

Después de esto, esta funcionalidad estará disponible en todos los archivos que se abran en LibreOffice Calc.

Menú YLC Utilities en LO Calc

Menú YLC Utilities en LO Calc

Menú YLC Utilities en Excel

Menú YLC Utilities en Excel