Macro para Insertar gráficos. Con Basic "dispatcher.executeDispatch(document, ".uno:InsertObjectChart", "", 0, Array())" o Python
Hola! Uso writer Versión: 6.0.7.3.
Mi intención es insertar gráficos pastel/torta a partir de la tabla que contiene los datos mediante un macro.
C:\fakepath\ejemplo tabla.odt
Pude insertar el gráfico sobre la tabla con una serie de indicaciones por teclado. La secuencia grabada la pego abajo pero cada vez que ejecuté esa macro tuve que seleccionar el tipo de gráfico. No encuentro cómo definir que el tipo de gráfico sea pie, supongo que es un parámetro en la linea:
dispatcher.executeDispatch(document, ".uno:InsertObjectChart", "", 0, Array())
¿tienen documentación sobre esta linea? ¿o cómo indicar que sea pie?
sub grafico_desde_fin_pregunta
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Count"
args2(0).Value = 1
args2(1).Name = "Select"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:EndOfDocumentSel", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertObjectChart", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())
end sub
Además intenté adaptar las siguiente lineas de código de Mauricio para zaz/python/easymacro pero no lo logre:
name = 'MyChart'
with writer.create_chart('Pie') as c:
c.name = name
c.table = table
c.data = 'A1:B5'
c.width = 11000
c.height = 7000
c.legend.CharColor = app.get_color('black')
En el caso de easymacro o python ¿cómo defino que recupere los datos del rango que selecciono?
Relacionado con: https://ask.libreoffice.org/es/questi...
Estoy estudiando python por lo que quisiera conocer los módulos que hay.
Saludos!!
De hecho, te di la solución en el tema relacionado y no le diste más seguimiento.
Hola, me faltó tiempo para seguir con python pero lo retomaré. Tenía que entregar un avance sin demoras y por eso pregunté si existe esta funcionailidad en writer.