Hola, tengo hecha una interfaz hecha con controles, label, textbox, button, etc hecha en una hoja de Libre Calc y necesito a través de una macro hecha en python embebida en esta planilla tomar los valores de los textbox, los listbox, etc. No se como hacerlo desde Python, algunas cosas las he hecho con ScriptForge, pero no se bién como hacer esta tarea. Gracias desde ya.
Supongamos que están en la hoja activa, que tienes solo un formulario, y que tu cuadro de texto se llama txt_name
, entonces:
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.CurrentController.ActiveSheet
txt_name = sheet.DrawPage.Forms[0]['txt_name']
print(txt_name.String)
Mucho de lo que muestro aquí, lo puedes aplicar desde Python:
https://wiki.openoffice.org/wiki/ES/Manuales/GuiaAOO/TemasAvanzados/Macros/StarBasic/TrabajandoConFormularios
Aquí pase mucho de eso a Python:
https://wiki.openoffice.org/wiki/ES/Manuales/GuiaAOO/TemasAvanzados/Macros/Python
Aquí intento moverlo a donde debe:
https://wiki.documentfoundation.org/Macros/Python_Guide
Hola Mauricio, gracias por la respuesta. Te comento que probé el código pero el metodo “String” del textbox no me trae el valor, no sé si me está faltando algo más, porque el cuadro de texti sí tiene cargado un valor por defecto. Si lo cargo con texto con el método sí lo trae, pero el vlor que ya tiene cargado no lo hace.
¿estas seguro que es un cuadro de texto, un control de formulario?.. sin ver tu archivo, solo queda adivinar…
quedamos igual, sin ver tu archivo para ver como lo haces… ayuden a que se les ayude…
Será el codigo lo que me pides, es este
doc = XSCRIPTCONTEXT.getDocument()
cur_sheet = doc.CurrentController.ActiveSheet
txt_name = cur_sheet.DrawPage.Forms[0]['Cuadro_texto_Nombre']
a = txt_name.String
Y cuando evalúo a desde consola me arroja ’ ', sin embargo tengo el texto ‘probando’ por defecto en el cuadro de texto.