easy-macro

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

easy-macro

Mensaje por mauricio »

Algunos por aquí conocen EasyDev: http://easydev.readthedocs.io/es/latest/

Para poder usarla, hay que instalar la extensión correspondiente, y cualquier cambio, hay que recompilar toda la extensión. Además, al ser un código Python, usado desde otro lenguajes, hay que estar haciendo un cambio constante de tipos de variables.

En cambio, easy-macro, es una librería Python para Python, lo que nos permite explotar todas las bondades y potencia de Python. Sus tareas si deciden aceptarlas son dos muy sencillas:

1.- Probar que lo que digo en la documentación funciona correctamente.
2.- Hacer su lista de deseos, es muy sencillo agregar funcionalidades a esta librería, concentrense en las más usuales.

La librería ya tiene muchas más herramientas de las que muestro en el wiki, confirmo las vaya documentado, voy avisando para quien quiera probarlas.

Agradezco la retroalimentación.

Un abrazo

Video de instalación en Windows: https://vimeo.com/226530117
Video de instalación en GNU/Linux: https://vimeo.com/226531393
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He avanzado en la documentación: https://gitlab.com/mauriciobaeza/easy-m ... s/index-es

He agregado una sección de ejemplos prácticos.

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He agregado dos videos de su instalación. Feliz programación!
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He terminado de documentar el trabajo con hojas de calculo:
https://gitlab.com/mauriciobaeza/easy-m ... -con-hojas

¡Feliz programación!
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

Con dedicatoria para mi amigo fornelasa, he empezado a hacerla compatible con OpenOffice... que no diga que no se le quiere...

Código: Seleccionar todo

from libo import LIBO

def main():
    app = LIBO()
    msg = 'Nombre: {}, Version: {}'.format(app.NAME, app.VERSION)
    app.msgbox(msg)
    return
ooo.png
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: easy-macro

Mensaje por fornelasa »

:lol: :lol:
ok :super:
:bravo:
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He agregado un bonito InputBox:
https://gitlab.com/mauriciobaeza/easy-m ... s#inputbox
input_es_01.png
(9.46 KiB) No descargado aún
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

Gracias al compañero Dario, se han validado muchas partes de easy-macro en OpenOffice...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: easy-macro

Mensaje por fornelasa »

Hola, empezando hoy con easy-macro tengo una duda: ¿que hago mal para que esta macro no funcione?

Código: Seleccionar todo

from libo import LIBO
def celda():
	app = LIBO()
	doc = app.doc
	hoja = doc.active
	ocelda = hoja['A1']
	app.msgbox(ocelda.String)
	return
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

Es mejor abrir un nuevo tema para las dudas...

Casi todos los objetos en easy-macro, son clases personalizadas, para obtener el valor de una celda, usas la propiedad value:

Código: Seleccionar todo

ocelda.value
Siempre que quieras acceder al objeto original y usar las propiedades que ya conoces, usas:

Código: Seleccionar todo

ocelda.obj.String
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: easy-macro

Mensaje por fornelasa »

Si es cierto :oops: abriré un tema por consulta.

Sí, así si funciona.

Creo importante decir que lo intenté con Value porque en Geany también por default nos da ese valor con mayúscula inicial, debiendo ser obviamente con minúscula.

Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

:super:

Recuerden, la primer fuente de consulta debe ser la documentación:
https://gitlab.com/mauriciobaeza/easy-m ... s/index-es

Si no esta documentado, pueden abrir un nuevo tema

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He agregado un método para crear nuevas ventanas con menús, claro, con unas pocas líneas. Dentro de las ventanas, se puede agregar cualquier control, incluso (creo), otros componentes... ¿se apuntan para hacer el cliente de correo dentro de LibreOffice?

Código: Seleccionar todo

    app = LIBO()
    menus = (
        ('Archivo', 0, ('Nuevo', '', 'Cerrar')),
    )
    properties = {
        'Title': 'Easy Macro',
        'Menus': menus,
    }
    win = app.create_window(properties)
    win.show()
window.png
(10.4 KiB) No descargado aún
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: easy-macro

Mensaje por fornelasa »

Con esta nueva mejora me imagino que hay que descargar de nuevo el archivo libo.py, ¿será/es así?
¿se apuntan para hacer el cliente de correo dentro de LibreOffice?
En idioma cristiano :mrgreen: ¿exactamente que significa eso?
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

Si, con cada cambio hay que actualizar la librería, por eso recomiendo usar git, con un comando siempre tienes actualizada la librería:

Código: Seleccionar todo

git pull origin master
Con eso se puede hacer un clon de Thunderbird dentro de LibreOffice, a eso me refiero.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: easy-macro

Mensaje por fornelasa »

Ok bien es claro, yo por el momento la descargaré (libo.py) cada que se deba.
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He comenzado a agregar soporte para trabajar con formularios, para acceder a los mismos de forma sencilla:

Código: Seleccionar todo

    sheet = app.doc.active
    form = sheet.forms['NombreFormulario']
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He agregado soporte para el manejo de colores, por ahora, solo el color de las pestañas de las hojas de calculo y el color del fondo de las celdas, las cuatro líneas siguientes son el mismo color.

Código: Seleccionar todo

    sheet = app.doc.active
    sheet['A1'].back_color = 'red'
    sheet['A2'].back_color = (255, 0, 0)
    sheet['A3'].back_color = '#FF0000'
    sheet['A4'].back_color = 16711680
La lista de nombres de colores posibles, la pueden consultar por aquí:
https://www.w3.org/TR/SVG11/types.html#ColorKeywords
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

Ahora es posible mostrar cuadros de dialogo insertados en el mismo documento.

Código: Seleccionar todo

    app = LIBO()
    args = {'Name': 'Dialog1'}
    dlg = app.create_dialog(args)
    dlg.open()
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: easy-macro

Mensaje por mauricio »

He agregado soporte para trabajar con las imágenes en hojas de calculo, con esto, la macro mostrada en este tema: https://forum.openoffice.org/es/forum/v ... 50&t=14078

Se convierte en esto:

Código: Seleccionar todo

from libo import LIBO, mri

PATH = 'file:///home/mau/Documents/img/{}.jpg'
app = LIBO()

def actualizar_imagen(source):
    if source.ImplementationName != 'ScCellObj':
        return

    cols = 0
    rows = 2
    sheet = app.doc.active
    cell = app.doc.selection.offset(cols, rows)
    img = sheet.images[cell.address]
    img.url = PATH.format(cell.string)

    return
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder