Los archivos ZIP pueden contener varios archivos, comúnmente utilizados para reducir el tamaño de los archivos. Al mismo tiempo, cada archivo se comprime individualmente, lo que ayuda a extraerlos y agregar nuevos sin comprimir o descomprimir todo el archivo Zip. Hoy en día, el uso de hojas de cálculo de Excel (XLSX o XLS) se ha incrementado en las actividades comerciales diarias. A veces, los archivos de Excel pueden llegar a ser bastante grandes, pero podemos reducir su tamaño comprimiéndolos en un archivo ZIP. En este artículo, aprenderá cómo comprimir archivos de Excel en un archivo ZIP en C# sin escribir código complejo. Además, verá cómo obtener el informe del progreso de la compresión mientras comprime los archivos grandes de Excel.
En este artículo se tratarán los siguientes puntos:
- C# .NET API para comprimir archivos de Excel en un archivo ZIP
- Agregar archivos XLS o XLSX a ZIP en C#
- Obtenga el informe del progreso de la compresión en C#
C# .NET API para comprimir archivos de Excel en un archivo ZIP
Para comprimir los archivos de Excel en un archivo ZIP, usaremos Aspose.ZIP para .NET. La API consta de numerosas funciones de archivo. Por lo tanto, puede descargar la DLL o instalarla mediante NuGet.
Install-Package Aspose.ZIP
Agregue archivos XLS o XLSX a ZIP en C#
Suponga que tiene varios archivos de Excel (XLSX o XLS) para comprimirlos en un archivo ZIP. Puede elegir una de las siguientes formas de hacer el trabajo.
C# comprimir archivos de Excel a ZIP usando FileStream
De esta manera, usaremos la clase FileStream para agregar archivos al archivo ZIP llamando a la función Archive.CreateEntry(String, FileStream).
Los siguientes son los pasos para comprimir hojas de cálculo de Excel a ZIP usando FileStream:
- Cree un objeto de clase FileStream para el archivo ZIP de salida.
- Crear objetos de FileStream para comprimir los archivos de Excel.
- Inicializar la clase Archivo y pasarle una instancia de la clase ArchiveEntrySettings.
- Agregar objetos FileStream creados en el paso 2 usando el método Archive.CreateEntry.
- Para comprimir los archivos, llame al método Archive.Save y use los objetos de FileStream (creados en el paso 1) y la instancia de ArchiveSaveOptions como parámetros.
El siguiente código muestra cómo comprimir archivos de Excel a ZIP usando FileStream.
C# comprime archivos XLSX o XLS en ZIP usando FileInfo
Alternativamente, podemos usar la clase FileInfo para agregar archivos al archivo ZIP. En este caso, los archivos se cargarán usando la clase FileInfo y se agregarán al archivo ZIP llamando al método Archive.CreateEntry(String, FileInfo).
Por favor, siga los pasos que se mencionan a continuación:
- Cree un objeto de clase FileStream para el archivo ZIP de salida.
- Crear objetos de FileInfo para los archivos de Excel a comprimir.
- Inicializar la clase Archivo y pasarle una instancia de la clase ArchiveEntrySettings.
- Agregar objetos FileStream creados en el paso 2 usando el método Archive.CreateEntry.
- Para comprimir los archivos, llame al método Archive.Save y use los objetos de FileStream (creados en el paso 1) y la instancia de ArchiveSaveOptions como parámetros.
El siguiente código muestra cómo comprimir archivos XLSX o XLS en ZIP usando FileInfo.
Comprima hojas de cálculo de Excel en ZIP usando la ruta del archivo
La forma más sencilla es agregar una ruta de archivo de Excel directamente al método Archive.CreateEntry:
Los siguientes son los pasos para comprimir hojas de cálculo de Excel a ZIP usando una ruta de archivo:
- Inicializar la clase Archivo.
- Agregue archivos de Excel usando el método Archive.CreateEntry.
- Para comprimir los datos, llame al método Archive.Save y use el nombre del archivo de salida como parámetro.
El siguiente código demuestra cómo comprimir archivos de hojas de cálculo de Excel en ZIP usando una ruta de archivo.
Obtenga el informe del progreso de la compresión en C#
En el caso de archivos de Excel de gran tamaño, el proceso de compresión puede tardar mucho tiempo en completarse. Para solucionarlo, la biblioteca de compresión C# ZIP proporciona el evento [CompressionProgressed] para publicar actualizaciones continuamente.
Los siguientes son los pasos para obtener el informe del progreso de la compresión en C#:
- Cree un objeto de FileStream para el archivo de Excel grande.
- Inicializar la clase Archivo y pasarle una instancia de la clase ArchiveEntrySettings.
- Obtenga un objeto de ArchiveEntry de la llamada al método Archive.CreateEntry.
- Adjunte [CompressionProgressed] al objeto ArchiveEntry.
- Llame a Archive.Save y use el nombre del archivo de salida como parámetro.
El siguiente ejemplo de código muestra cómo obtener el informe del progreso de la compresión en C#:
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.
Conclusión
En este artículo, ha aprendido cómo comprimir archivos de Excel en un archivo ZIP en C# usando una biblioteca de compresión C# ZIP. Aparte de eso, tiene suficiente conocimiento sobre cómo obtener un informe de progreso de compresión mientras comprime archivos grandes de Excel. Puede visitar la documentación para explorar otras funciones de la API de compresión ZIP de C#.
Hacer una pregunta
Puedes hacernos saber tus dudas o consultas en nuestro foro.