Macro para pasar tablas de calc a writer con encabezado y descripción. Y generar gráfico pastel.
Versión: 6.0.7.3 - Configuración regional: es-AR (es_AR.UTF-8); Calc: group
Hola! Tengo que generar un documento en writer a partir de una hoja de calculos de 160 tablas de calc. C:\fakepath\consulta.foro.odsLo generé siguiendo las propuestas de: https://ask.libreoffice.org/es/questi... Para pegar cada tabla con su texto en writer hice un macro que al que llamo desde el teclado. Intenté generar un gráfico pastel en simultaneo, pero no puede. Adjunto el documento de writer y uno de texto que contiene la macro.
C:\fakepath\macro_pegar_tabla.odt C:\fakepath\consulta.foro.documento.frecuencias.odt
La metodología la usaría cada vez que apliquemos la encuesta (los datos los recolectamos con Limesurvey). Luego se generan documentos como este: http://www.ceil-conicet.gov.ar/wp-con...
¿Alguien me sugeriría un método mejor para generar en writer las tablas, descripción y gráficos pastel?
Saludos!!
Documento Writer resultante hasta el momentoC:\fakepath\prueba2019_11_1.odt
PD: Pego a continuación las partes del código que no entiendo y mis notas
def calc2writer():
doc = app.get_document() #documento abierto
sheet = doc['Sheet1'] #es la primera hoja
data = sheet['A1'].current_region.data #indica que en la hoja, tome la celda A1
first = data[0][0] #el texto de pregunta
last = data[-1][0] #el texto de descripción
table_data = data[1:-1] #los datos de la tabla. NO LO ENTIENDO CÓMO CAMBIARLO
writer = app.new_doc('writer') #abrir nuevo writer
writer.write(first) #escribir pregunta
writer.write('\n\n') #escribir espacios
table = writer.insert_table(table_data) #inserta tabla con datos de calc
chart_data = 'A1:B5' #tabla ¿es estatica? ¿puedo definir una selección? NO LO ENTIENDO CÓMO CAMBIARLO
writer.write('\n') #espacio
writer.write(last) # escribir la descripción
writer.write('\n\n') #espacio
name = 'MyChart' #defino elemento
with writer.create_chart('Pie') as c:#parametros del gráfico
c.name = name
c.table = table
c.data = 'A1:B5' #rango estable para los datos del gráfico. NO LO ENTIENDO CÓMO CAMBIARLO
c.width = 11000 #ancho
c.height = 7000 #alto
c.legend.CharColor = app.get_color('black')
return
Como te comentaron, esto es mejor hacerlo en Calc, todo lo que requieran editar, ahí mismo puedes hacerse, pero... también tengo claro que cada escenario es diferente, y a veces hay que adaptarse a lo que hay, pero definitivamente, creo, tiene que hacerse con macros, solo que hacerlo con código directo, es posible pero debes de tener algo de conocimiento, y es mucho, mucho trabajo para ponerlo todo por aquí, pero... si tienes la posibilidad de instalar extensiones, entonces, tal vez hay una manera más sencilla... ¿puedes instalar extensiones donde usaras esto?
Sí podría instalar extensiones. Las pruebas las hago en una maquinavirtual que tiene ubuntu.