Página 1 de 1

[RESUELTO] Macro para descomprimir un fichero zip

Publicado: Mar Nov 24, 2015 10:53 pm
por RASAPA
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

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 12:14 am
por fornelasa
Intentemos más o menos con:

Código: Seleccionar todo

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.

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 1:39 pm
por RASAPA
Buenos dias Fornelasa,
He provado con linux mint i LibreOffice 4,2,8,2 y la linea :

Código: Seleccionar todo

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

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 3:44 pm
por mauricio
Usa Python: https://docs.python.org/3.4/library/zip ... extractall

y próximamente en EasyDev...

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 5:16 pm
por fornelasa
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.

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 6:20 pm
por mauricio
Shell.Application solo esta disponible en Windows...
fornelasa escribió:Nunca he usado linux mint
Muy mal hecho... :lol: :lol:

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 7:13 pm
por fornelasa
:lol: :lol: :lol: :lol: :lol:

Re: Macro para descomprimir un fichero zip

Publicado: Mié Nov 25, 2015 10:22 pm
por RASAPA
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

Re: Macro para descomprimir un fichero zip

Publicado: Jue Nov 26, 2015 6:41 am
por mauricio
Listo: http://easydev.readthedocs.org/en/devel ... html#unzip

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

Saludos

Re: Macro para descomprimir un fichero zip

Publicado: Jue Nov 26, 2015 9:35 am
por RASAPA
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

Re: Macro para descomprimir un fichero zip

Publicado: Jue Nov 26, 2015 1:27 pm
por mauricio
Esta implementado en desarrollo mi amigo, siempre hay que usar la versión 2.3 de desarrollo: https://github.com/UniversoLibreMexicoA ... elop/files

Saludos

Re: Macro para descomprimir un fichero zip

Publicado: Mié Dic 02, 2015 4:23 pm
por RASAPA
Perfecta la solucion.
Agil y rapida.
Muchas gracias.

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Lun Ene 23, 2017 7:41 pm
por 196hongos
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

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Lun Ene 23, 2017 8:13 pm
por mauricio
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

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Lun Ene 23, 2017 9:25 pm
por 196hongos
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

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Lun Ene 23, 2017 9:52 pm
por mauricio
No damos soporte en estos foros para Office

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Lun Ene 23, 2017 10:35 pm
por 196hongos
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

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Jue Mar 02, 2017 6:48 pm
por martinbrait
'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

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

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

Re: [RESUELTO] Macro para descomprimir un fichero zip

Publicado: Mié May 10, 2017 5:27 pm
por jmartinez2017
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")