TOP

Escribimos una macro en Python para LibreOffice Calc

Descripción

LibreOffice Calc permite a los usuarios crear sus propias macros utilizando el lenguaje de programación integrado StarBasic. Este lenguaje es muy similar al VBA , sin embargo, tiene una funcionalidad limitada ya que rara vez se utiliza.

Los lenguajes de programación modernos, como Python, ofrecen muchas más posibilidades y tienen una gama más amplia de bibliotecas adicionales para todas las ocasiones.

Entonces, aprendamos cómo crear sus propias macros utilizando un lenguaje de programación tan popular hoy en día como Python.


La suite ofimática LibreOffice te permite crear tus propias macros en lenguajes de programación de terceros como Python, JavaScript, C++ y Java.

StarBASIC Código para HolaMundo

Primero, recordemos cómo puede escribir su propio programa utilizando las herramientas estándar LibreOffice Calc para escribir macros.

A continuación se muestra el código de la macro. HelloWorld , que prescribe la frase "Hello World!" en la celda "B7" utilizando el lenguaje de programación incorporado StarBasic.

Para agregar una nueva macro, abra el menú Tools - Macros - Edit Macros... , seleccione Module1 y copie el siguiente texto en el módulo:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

Luego, cierre Macro Editor, regrese a LibreOffice Calc y ejecute nuestra nueva macro a través del menú Tools - Macros - Run Macro...

Carpeta Python

Antes de escribir una macro en Python, primero debemos crear un archivo *.py (myPyScripts.py) en la siguiente carpeta:

%APPDATA%\LibreOffice\4\user\scripts\python

Si carpetas guiones y pitón faltan, debe crearlos manualmente.

Python Código para HelloPython

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

Para agregar una nueva macro, abra el archivo myPyScripts.py mediante Notepad++ (o Windows Notepad) y copie allí el siguiente texto:

from scriptforge import CreateScriptService

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

Luego, cierra Notepad++ y regrese a LibreOffice Calc. Para confundir este script, abra el menú. Tools - Macros - Organise Macros - Python... , seleccionar "My Macros" , abre la carpeta "myPyScripts" y eligiendo HelloPython presione el botón Run .

Tenga en cuenta que las macros proporcionadas en StarBasic en Python usan la biblioteca incorporada ScriptForge . Esta biblioteca simplifica la escritura de macros para los usuarios finales, ocultando todas las funciones del sistema "debajo del capó".

Usando la extensión

También puedes utilizar un conjunto ya preparado. funciones y utilidad escrito en Python instalando la extensión YLC Utilities .

Después de eso, esta funcionalidad estará disponible en todos los archivos que se abrirán en LibreOffice Calc.