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
Re: easy-macro
Publicado: Vie Jul 28, 2017 12:38 am
por fornelasa
Re: easy-macro
Publicado: Sab Jul 29, 2017 1:11 am
por mauricio
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:
Siempre que quieras acceder al objeto original y usar las propiedades que ya conoces, usas:
Saludos
Re: easy-macro
Publicado: Lun Jul 31, 2017 6:50 pm
por fornelasa
Si es cierto
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
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()
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
¿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:
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