es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo incrustar scripts de Python en LibreOffice Calc

Tengo un script .py exitoso que puede abrir un documento existente de LO Calc (guardado como .xlsx para poder usar openpyxl) que agrega información al archivo, guarda el archivo y lo cierra al finalizar la ejecución del script. El archivo .xlsx no puede estar abierto cuando se ejecuta el script, de lo contrario el archivo se corrompe y se pierden todos los datos.

Pero lo que realmente necesito es poder ver los datos que se van agregando a la hoja de cálculo a medida que ocurren, para poder tener un gráfico dinámico que muestre visualmente la información.

Instalé APSO (¡gracias!) que creo que me permitirá incrustar scripts de usuario de Python editables. Quiero que el script se ejecute cuando haga clic en un botón programable que creé en mi hoja de cálculo.

Guardé el script en /home/USER/.config/libreoffice/4/user/Scripts/python, siguiendo las instrucciones del software “code assistant” de ScriptForge de la Conferencia LO 2021.

En la ventana de selección de macros, bajo “Mis macros”, veo mi script, pero se me niega el acceso al botón “Aceptar” (aparece en gris), sin embargo, puedo seleccionar un script del archivo “LibOCon_2021.py” de ScriptForge.

Al comparar mi script .py con los que están en “LibOCon_2021.py”, parece que la diferencia es que mi script no tiene una definición, así que al principio de mi script agregué “def to_be_embedded(args=None):” y lo guardé, pero el botón “Aceptar” todavía no está disponible, por lo que no puedo vincularlo al botón presionado.

Entonces, ¿cómo puedo incrustar realmente mi script y hacer que se ejecute cuando haga clic en el botón?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para insertar tu script en LibreOffice y hacer que se ejecute cuando hagas clic en el botón programable, sigue estos pasos:

    1. Abre tu documento de Calc y ve a Herramientas > Macros > Organizar macros > LibreOffice Basic.
    2. En la ventana del Selector de Macros, haz clic en “Mis Macros” y luego en “Estándar”.
    3. Haz clic en “Nuevo” para crear un nuevo módulo y elige “Python” como lenguaje.
    4. Pega tu script de Python en la ventana del editor.
    5. Define una función en la parte superior de tu script, por ejemplo: def my_function():
    6. Cierra la ventana del editor y haz clic en el botón “Guardar” para guardar tus cambios.
    7. Vuelve a tu documento de Calc, haz clic derecho en un espacio vacío de una de las barras de herramientas y elige “Personalizar barra de herramientas”.
    8. En la ventana “Personalizar barra de herramientas”, selecciona la pestaña “Comandos” y luego “Categoría: Macros de LibreOffice”.
    9. Deberías ver tu macro listada bajo “Mis Macros” – arrástrala y suéltala en la barra de herramientas para crear un botón.
    10. Haz clic derecho en el nuevo botón y elige “Asignar macro”. Selecciona tu macro y haz clic en “Aceptar”.
    11. Haz clic en tu nuevo botón para ejecutar tu script de Python.

    Esto debería insertar tu script en LibreOffice y permitirte ejecutarlo desde un botón programable mientras ves los datos poblarse en la hoja de cálculo en tiempo real.

Comments are closed.