[RESUELTO] Abrir documentos

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
yohana
Mensajes: 66
Registrado: Mar Jun 30, 2009 2:42 pm

[RESUELTO] Abrir documentos

Mensaje por yohana »

Hola, necesito vuestra ayuda, a ver, estoy migrando una macro de Excel a Calc ya que no funciona bien.
En concreto falla en la linea: "RutaInput = Application.GetOpenFilename("Archivos de texto (*.txt), *.txt", 1, "Seleccionar archivo de Cobros", False)"
No encuentro nada parecido en OOBasic, lo único que encuentro es como abrir documentos de los que tu le das la url, pero yo lo que quiero, es que al ejecutar la macro aparezca la típica ventana de Windows para explorar las carpetas y elegir la deseada.
¿Alguien sabe como hacerlo??

Gracias
Última edición por yohana el Mié Jul 22, 2009 8:32 am, editado 1 vez en total.
yohana
Mensajes: 66
Registrado: Mar Jun 30, 2009 2:42 pm

Re: Abrir documentos

Mensaje por yohana »

Muchas gracias, me ha sido de gran ayuda!! :P
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Abrir documentos

Mensaje por mauricio »

Para abrir un archivo usamos:

Código: Seleccionar todo

Sub AbrirArchivo1()
Dim oDlgAbrirArchivo as Object
Dim mArchivo() As String
Dim mOpciones()
Dim sRuta As String
Dim oDoc As Object

        'Creamos el servicio necesario
        oDlgAbrirArchivo = CreateUnoService ("com.sun.star.ui.dialogs.FilePicker")
        'Establecemos el titulo del cuadro de dialogo
        oDlgAbrirArchivo.setTitle("Selecciona el archivo a abrir")
        'Con el metodo .Execute() mostramos el cuadro de dialogo
        'Si el usuario presiona Abrir el metodo devuelve 1 que podemos evaluar como Verdadero (True)
        'Si presiona Cancelar devuelve 0
        If oDlgAbrirArchivo.Execute() Then
                'De forma predeterminada, solo se puede seleccionar un archivo
                'pero devuelve una matriz de todos modos con la ruta completa
                'del archivo en formato URL
                mArchivo() = oDlgAbrirArchivo.getFiles()
                'El primer elemento de la matriz es el archivo seleccionado
                sRuta = mArchivo(0)
                'Y lo abrimos
                oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )
        Else
                'Si el usuario presiona Cancelar
                MsgBox "Proceso cancelado"
        End If
        
End Sub
Si quieres abrir más de un archivo, usamos:

Código: Seleccionar todo

Sub AbrirArchivo2()
Dim oDlgAbrirArchivo as Object
Dim mArchivos() As String
Dim mOpciones()
Dim co1 As Integer

        oDlgAbrirArchivo = CreateUnoService ("com.sun.star.ui.dialogs.FilePicker")
        oDlgAbrirArchivo.setTitle("Selecciona los archivos a abrir")
        'Establecemos que se puedan seleccionar mas de un archivo
        oDlgAbrirArchivo.setMultiSelectionMode(True)
        
        If oDlgAbrirArchivo.Execute() Then
                mArchivos() = oDlgAbrirArchivo.getFiles()
                'Mostramos los archivos seleccionados
                For co1 = LBound( mArchivos() ) To UBound( mArchivos() )
                        MsgBox ConvertFromUrl( mArchivos(co1) )
                Next
                'Te queda de tarea abrir todos los archivos
                'oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )
        Else
                MsgBox "Proceso cancelado"
        End If
        
End Sub
Este y otros temas los puedes consultar en mis apuntes, los puedes descargar desde el siguiente vinculo:

http://user.services.openoffice.org/es/ ... =50&t=1545

Saludos a todos...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder