Página 1 de 1

easy-macro

Publicado: Mar Jul 18, 2017 2:00 am
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

Re: easy-macro

Publicado: Vie Jul 21, 2017 6:15 pm
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

Re: easy-macro

Publicado: Sab Jul 22, 2017 5:26 am
por mauricio
He agregado dos videos de su instalación. Feliz programación!

Re: easy-macro

Publicado: Lun Jul 24, 2017 5:01 am
por mauricio
He terminado de documentar el trabajo con hojas de calculo:
https://gitlab.com/mauriciobaeza/easy-m ... -con-hojas

¡Feliz programación!

Re: easy-macro

Publicado: Mié Jul 26, 2017 7:05 am
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

Re: easy-macro

Publicado: Vie Jul 28, 2017 12:38 am
por fornelasa
:lol: :lol:
ok :super:
:bravo:

Re: easy-macro

Publicado: Sab Jul 29, 2017 1:11 am
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

Re: easy-macro

Publicado: Dom Jul 30, 2017 2:34 am
por mauricio
Gracias al compañero Dario, se han validado muchas partes de easy-macro en OpenOffice...

Re: easy-macro

Publicado: Lun Jul 31, 2017 6:05 pm
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

Re: easy-macro

Publicado: Lun Jul 31, 2017 6:17 pm
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

Re: easy-macro

Publicado: Lun Jul 31, 2017 6:50 pm
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.

Re: easy-macro

Publicado: Lun Jul 31, 2017 7:15 pm
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

Re: easy-macro

Publicado: Vie Ago 04, 2017 4:51 pm
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

Re: easy-macro

Publicado: Vie Ago 04, 2017 5:30 pm
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.

Re: easy-macro

Publicado: Vie Ago 04, 2017 5:32 pm
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

Re: easy-macro

Publicado: Vie Ago 04, 2017 8:04 pm
por fornelasa
Ok bien es claro, yo por el momento la descargaré (libo.py) cada que se deba.
Saludos.

Re: easy-macro

Publicado: Mar Sep 26, 2017 4:42 pm
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

Re: easy-macro

Publicado: Mié Abr 18, 2018 6:45 am
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

Re: easy-macro

Publicado: Jue Abr 26, 2018 4:31 am
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()

Re: easy-macro

Publicado: Jue Nov 22, 2018 6:41 pm
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