[RESUELTO] Macro para descomprimir un fichero zip

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Macro para descomprimir un fichero zip

Notapor RASAPA » Mar Nov 24, 2015 10:53 pm

Buenos dias a todos,

Una vez ví una macro para descomprimir un fichero zip con codigo de openOffice.
Ahora que lo necesitaria, no puedo encontrar nada parecido.
Alguien ha provado de descomprimir algun zip ?

Saludos
Ramon
Última edición por mauricio el Mié Dic 02, 2015 5:44 pm, editado 2 veces en total
Razón: Usar icono de RESUELTO
LibreOffice 5.2.6.2
Linux Mint 17.3
RASAPA
 
Mensajes: 222
Registrado: Mar Mar 16, 2010 10:41 pm

Re: Macro para descomprimir un fichero zip

Notapor fornelasa » Mié Nov 25, 2015 12:14 am

Intentemos más o menos con:

Código: Seleccionar todo   Expandir vistaContraer vista
Sub Descomprimir
Destino = "C:\TuCarpeta\TuCarpeta"
Origen = "C:\TuCarpeta\TuCarpeta\ArchivoEquis.zip"
oAplica = CreateObject("Shell.Application")
oAplica.Namespace(Destino).CopyHere oAplica.Namespace(Origen).items
End Sub


Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3246
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro para descomprimir un fichero zip

Notapor RASAPA » Mié Nov 25, 2015 1:39 pm

Buenos dias Fornelasa,
He provado con linux mint i LibreOffice 4,2,8,2 y la linea :
Código: Seleccionar todo   Expandir vistaContraer vista
oAplica = CreateObject("Shell.Application")

me da el error: Se ha producido un error al crear el objeto.No se puede cargar el modulo.El formato no es valido.

Muchas gracias y saludos
Ramon
LibreOffice 5.2.6.2
Linux Mint 17.3
RASAPA
 
Mensajes: 222
Registrado: Mar Mar 16, 2010 10:41 pm

Re: Macro para descomprimir un fichero zip

Notapor mauricio » Mié Nov 25, 2015 3:44 pm

Usa Python: https://docs.python.org/3.4/library/zip ... extractall

y próximamente en EasyDev...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Macro para descomprimir un fichero zip

Notapor fornelasa » Mié Nov 25, 2015 5:16 pm

ummmmm ok bien.
Solo me gustaría comentar que con los programas y sistema operativo de mi firma funciona normalmente. Nunca he usado linux mint
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3246
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro para descomprimir un fichero zip

Notapor mauricio » Mié Nov 25, 2015 6:20 pm

Shell.Application solo esta disponible en Windows...
fornelasa escribió:Nunca he usado linux mint

Muy mal hecho... :lol: :lol:
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Macro para descomprimir un fichero zip

Notapor fornelasa » Mié Nov 25, 2015 7:13 pm

:lol: :lol: :lol: :lol: :lol:
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3246
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro para descomprimir un fichero zip

Notapor RASAPA » Mié Nov 25, 2015 10:22 pm

Buenos diias,
Usa Python: https://docs.python.org/3.4/library/zip ... extractall

y próximamente en EasyDev...


Teniendo en cuenta esta noticia, creo que esperaré su inclusión en EsasyDev.
Va a ser muy potente esta extension :bravo: :bravo:

Saludos
Ramon
LibreOffice 5.2.6.2
Linux Mint 17.3
RASAPA
 
Mensajes: 222
Registrado: Mar Mar 16, 2010 10:41 pm

Re: Macro para descomprimir un fichero zip

Notapor mauricio » Jue Nov 26, 2015 6:41 am

Listo: http://easydev.readthedocs.org/en/devel ... html#unzip

En cuanto valides que funciona correctamente, lo paso a producción...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Macro para descomprimir un fichero zip

Notapor RASAPA » Jue Nov 26, 2015 9:35 am

Hoila Mauricio,

He probado el codigo pero me da error "No se encuentra la propiedad o el metodo: Unzip"
He probado de bajarme la ultima version 2,2,0 y me sale lo mismo.

Pregunto: Hay alguna otra forma de validar que funciona??

Saludos
LibreOffice 5.2.6.2
Linux Mint 17.3
RASAPA
 
Mensajes: 222
Registrado: Mar Mar 16, 2010 10:41 pm

Re: Macro para descomprimir un fichero zip

Notapor mauricio » Jue Nov 26, 2015 1:27 pm

Esta implementado en desarrollo mi amigo, siempre hay que usar la versión 2.3 de desarrollo: https://github.com/UniversoLibreMexicoA ... elop/files

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Macro para descomprimir un fichero zip

Notapor RASAPA » Mié Dic 02, 2015 4:23 pm

Perfecta la solucion.
Agil y rapida.
Muchas gracias.
LibreOffice 5.2.6.2
Linux Mint 17.3
RASAPA
 
Mensajes: 222
Registrado: Mar Mar 16, 2010 10:41 pm

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor 196hongos » Lun Ene 23, 2017 7:41 pm

Sub Descomprimir
Destino = "C:\TuCarpeta\TuCarpeta"
Origen = "C:\TuCarpeta\TuCarpeta\ArchivoEquis.zip"
oAplica = CreateObject("Shell.Application")
oAplica.Namespace(Destino).CopyHere oAplica.Namespace(Origen).items
End Sub


:( me sale el error

Object doesn't support this property or method
OpenOffice 3.1
196hongos
 
Mensajes: 3
Registrado: Lun Ene 23, 2017 7:35 pm

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor mauricio » Lun Ene 23, 2017 8:13 pm

Siempre es bueno mostrar la línea donde te da el error, ayuda a quien quiera ayudarte...

Supongo que te da error en la penultima línea, ¿es correcto?...

¿Que S.O. estas usando?... ¿realmente estas usando AOO 3.1 como dice tu firma?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor 196hongos » Lun Ene 23, 2017 9:25 pm

mauricio escribió:Siempre es bueno mostrar la línea donde te da el error, ayuda a quien quiera ayudarte...

Supongo que te da error en la penultima línea, ¿es correcto?...

¿Que S.O. estas usando?... ¿realmente estas usando AOO 3.1 como dice tu firma?

Saludos




Que tal


asi es


oAplica = CreateObject("Shell.Application") esta linea es la del error.


estoy corriendolo en Office 2013
OpenOffice 3.1
196hongos
 
Mensajes: 3
Registrado: Lun Ene 23, 2017 7:35 pm

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor mauricio » Lun Ene 23, 2017 9:52 pm

No damos soporte en estos foros para Office
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor 196hongos » Lun Ene 23, 2017 10:35 pm

mauricio escribió:No damos soporte en estos foros para Office





Gracias!


No hace falta, ya encontre la solucion.

Solo es necesario reemplazar el final por

Set oApp = CreateObject("Shell.Application")

oApp.Namespace(Destino).CopyHere oApp.Namespace(Origen).items
OpenOffice 3.1
196hongos
 
Mensajes: 3
Registrado: Lun Ene 23, 2017 7:35 pm

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor martinbrait » Jue Mar 02, 2017 6:48 pm

'Listing 5.88: Extract all files in a zip file.
' Test usage for the following subs
'call unzipFileFromArchive("c:\test.zip", "test.txt", "c:\test.txt")
'call unzipArchive("c:\test.zip", "c:\")

Código: Seleccionar todo   Expandir vistaContraer vista
Sub unzipFileFromArchive( _
strZipArchivePath As String, _
strSourceFileName As String, _
strDestinationFilePath As String)
Dim blnExists As Boolean
Dim args(0) As Variant
Dim objZipService As Variant
Dim objPackageStream As Variant
Dim objOutputStream As Variant
Dim objInputStream As Variant
Dim i As Integer
'==========================================================================
' Unzip a single file from an archive. You must know the exact name
' of the file inside the archive before this sub can dig it out.
'
' strZipArchivePath = full path (directory and filename)
' to the .zip archive file.
' strSourceFileName = the name of the file being dug from the .zip archive.
' strDestinationFilePath = full path (directory and filename) where
' the source file will be dumped.
'=========================================================================
' Create a handle to the zip service,
objZipService = createUnoService("com.sun.star.packages.Package")
args(0) = ConvertToURL(strZipArchivePath)
objZipService.initialize(args())
' Does the source file exist?
If Not objZipService.HasByHierarchicalName(strSourceFileName) Then Exit Sub
' Get the file input stream from the archive package stream.
objPackageStream = objZipService.GetByHierarchicalName(strSourceFileName)
objInputStream = objPackageStream.GetInputStream()
' Define the output.
objOutputStream = createUnoService("com.sun.star.ucb.SimpleFileAccess")
objOutputStream.WriteFile(ConvertToURL(strDestinationFilePath), _
objInputStream)
End Sub



Código: Seleccionar todo   Expandir vistaContraer vista
Sub unzipArchive( _
strZipArchivePath As String, _
strDestinationFolder As String)
Dim args(0) As Variant
Dim objZipService As Variant
Dim objPackageStream As Variant
Dim objOutputStream As Variant
Dim objInputStream As Variant
Dim arrayNames() As Variant
Dim strNames As String
Dim i As Integer
'=========================================================================
' Unzip the an entire .zip archive to a destination directory.
'
' strZipArchivePath = full path to the .zip archive file.
' strDestinationFilePath = folder where the source files will be dumped.
'=========================================================================
' Create a handle to the zip service,
objZipService = createUnoService("com.sun.star.packages.Package")
args(0) = ConvertToURL(strZipArchivePath)
objZipService.initialize(args())
' Grab a package stream containing the entire archive.
objPackageStream = objZipService.GetByHierarchicalName("")
' Grab a listing of all files in the archive.
arrayNames = objPackageStream.getElementNames()
' Run through each file in the name array and pipe from archive
' to destination folder.
For i = LBound(arrayNames) To UBound(arrayNames)
strNames = strNames & arrayNames(i) & Chr(13)
' Read in and pump out one file at a time to the filesystem.
ObjInputStream = _
objZipService.GetByHierarchicalName(arrayNames(i)).GetInputStream()
objOutputStream = createUnoService("com.sun.star.ucb.SimpleFileAccess")
objOutputStream.WriteFile(ConvertToURL(strDestinationFolder & _
arrayNames(i)), objInputStream)
Next
MsgBox strNames
End Sub
OpenOffice 3.1
martinbrait
 
Mensajes: 4
Registrado: Dom Jul 31, 2016 10:49 pm

Re: [RESUELTO] Macro para descomprimir un fichero zip

Notapor jmartinez2017 » Mié May 10, 2017 5:27 pm

196hongos escribió:
mauricio escribió:Siempre es bueno mostrar la línea donde te da el error, ayuda a quien quiera ayudarte...

Supongo que te da error en la penultima línea, ¿es correcto?...

¿Que S.O. estas usando?... ¿realmente estas usando AOO 3.1 como dice tu firma?

Saludos




Que tal


asi es


oAplica = CreateObject("Shell.Application") esta linea es la del error.


estoy corriendolo en Office 2013




Hola, para solucionar tu pbroblema y correrlo en Office, solo agrega esto "Set" a inicio de esta linea:
oAplica = CreateObject("Shell.Application")

debe quedar así:

Set oAplica = CreateObject("Shell.Application")
OpenOffice 4.1.3
Windwos 7 Profesional
jmartinez2017
 
Mensajes: 1
Registrado: Mié May 10, 2017 5:18 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados