Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



jueves, 15 de marzo de 2012

LIBREOFFICE: Obtener datos de una web y usar macros


Del foro de openoffice en español, he encontrado información andaba buscando sobre macros y obtener datos de una web para pasarlos a una hoja de calculo...



Modo manual para obtener datos de una web con libreoffice, posteado por ifanlo:
http://user.services.openoffice.org/es/forum/viewtopic.php?f=50&t=5386#p19496
"En el ejemplo que adjunto, establezco los límites de fechas y a partir de ahí, se me crea una celda (D2) con la dirección URL deseada.

1) Me situo en esa celda y copio con Ctrl+C
2) Me desplazo a D6 (o donde desees importar la tabla)
3) Insertar > Vincular con datos externos y aparecerá un diálogo "Datos externos"
4) En "URL de la fuente de datos externa", pegar con Ctrl+V y se pegará el contenido de la URL que antes copiamos.
5) Pulsar Intro (paciencia, que tarda un poquito en responder)
6) Aceptar sin más en el diálogo "Opciones de importación" que aparece
7) En el diálogo "Datos externos" se mostrarán las tablas detectadas. Seleccionar HTML_19 (si cambian el diseño de la página, esto puede cambiar) y Aceptar

Tras una breve pausa se pegará el contenido de la tabla."
ejemplo que adjuntaba:  http://user.services.openoffice.org/es/forum/download/file.php?id=1805


Macro para obtener datos de una web, autor FORNELASA:

 Suponiendo que la URL esta en la celda G1 de la Hoja1 (hoja activa)
Y deseamos la tabla puesta en la Hoja2 celda H1
Y que la tabla es la numero 19
esta macro sería una opcion:

sub datosexternos
'-------------------------------------------------------------------------------------------------------------------------------------
Dim oSheet as Object
dim args(2) as new com.sun.star.beans.PropertyValue
dim cadena as string
dim document as object
dim dispatcher as object
'-------------------------------------------------------------------------------------------------------------------------------------
oSheet = ThisComponent.Sheets.getByName("Hoja2")
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
cadena = thiscomponent.currentcontroller.activesheet.getcellrangebyname("G1").string
'-------------------------------------------------------------------------------------------------------------------------------------
args(0).Name = "FileName"
args(0).Value = cadena
args(1).Name = "FilterName"
args(1).Value = "calc_HTML_WebQuery"
args(2).Name = "Source"
args(2).Value = "HTML_19"
'-------------------------------------------------------------------------------------------------------------------------------------
ThisComponent.CurrentController.select(oSheet.getCellRangeByName("H1"))
dispatcher.executeDispatch(document, ".uno:InsertExternalDataSource", "", 0, args())
'-------------------------------------------------------------------------------------------------------------------------------------
end sub

 

Nota:
1) Como activar la opcion "grabar macros"

http://user.services.openoffice.org/es/forum/viewtopic.php?f=50&t=5299#p19061

2) Como asignar a una imagen un macro (para que lo ejecute cuando pulsamos en ella)

http://wiki.open-office.es/Asignar_una_macro_a_una_imagen_del_documento

 

3) INTERESANTE: Manual para programar en Basic en openoffice /libreOffice:

WMora_Programacion_OOoBasic macros en libreoffice.pdf