He creado 2 script/código/Macro en OOO Basic: 1. EliminarHoja: Para eliminar Hoja "Info" del archivo adjunto "Reporte_Detallado.xls" y 2. Xls_to_csv: Para convertir el mismo archivo "Reporte_Detallado.xls" a formato .csv; pero tengo el problema que cuando los ejecuto, OpenOffice abre un diálogo donde, en el primer caso me consulta si en verdad deseo eliminar la hoja, como no lo logre agregar a la macro para cerrar ese diálogo de manera automática, creé el 2do. script "xls_to_csv", donde en este caso me advierte mediante otro diálogo que solo se convirtió la primera hoja a csv.
Los scripts si terminan funcionando pero hasta que le doy click de forma manual a los diálogos de "advertencia", lo cual, quiero agregar a los script/macros pero no he hallado cómo. He visto en este foro como crean un objeto como el cuadro de diálogo y luego se cierra con .dispose() o .endExecute() pero son diálogos que los mismos usuarios crean, en mi caso, son cuadros de diálogo que están por default en OpenOffice, no los cree yo. Si me pudieran apoyar, les agradecería mucho. Mi OpenOffice es versión 4.1.7 y el SO es W10 Pro
Les adjunto el código de ambos script/macros:
EliminarHoja
Código: Seleccionar todo
'URL_1 = WScript.Arguments.Item(0)
URL_1 = "C:\Users\joseph.cordon"
URL_1 = "file:///"&CStr(URL_1)&"\Downloads\Reporte_Detallado.xlsx"
'Cargar los objetos Open Office: Service Manager, Dispatcher y Desktop
Set OOServiceManager = CreateObject("com.sun.star.ServiceManager")
Set OODispatcher = OOServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
Set OODesktop = OOServiceManager.CreateInstance("com.sun.star.frame.Desktop")
'Cargar archivo descargado en formato .xls
Dim args()
Set OOSpreadSheet = OODesktop.loadComponentFromURL(URL_1, "_default", 0, args)
'Argumentos
dim args1(0)
Set args1(0) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args1(0).Name = "Nr"
args1(0).Value = 2
'Mover a siguiente hoja y eliminar
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:JumpToTable", "", 0, args1)
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:Remove", "", 0, Array())
'Cerrar archivo
OOSpreadSheet.close(true)
'OOServiceManager.dispose()
OODesktop.terminate
Código: Seleccionar todo
URL_1 = WScript.Arguments.Item(0)
'URL_1 = "C:\Users\joseph.cordon"
URL_1 = "file:///"&CStr(URL_1)&"\Downloads\Reporte_Detallado_de_Procesamiento.xlsx"
'Cargar los objetos Open Office: Service Manager, Dispatcher y Desktop
Set OOServiceManager = CreateObject("com.sun.star.ServiceManager")
Set OODispatcher = OOServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
Set OODesktop = OOServiceManager.CreateInstance("com.sun.star.frame.Desktop")
'Cargar archivo descargado en formato .xls
Dim args()
Set OOSpreadSheet = OODesktop.loadComponentFromURL(URL_1, "_default", 0, args)
'Argumentos de guardado csv
dim args1(2)
Set args1(0) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(1) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(2) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args1(0).Name = "URL"
args1(0).Value = "file:///C:/RPA/Reportediario.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,ANSI,1,,0,false,true,true"
'Guardar como csv
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:SaveAs", "", 0, args1)
'Cerrar archivo
OOSpreadSheet.close(true)
'OOServiceManager.dispose()
OODesktop.terminate