Как сжать файлы Excel в ZIP на C#

Как сжать файлы Excel в ZIP на C#

Архивы ZIP могут содержать несколько файлов, что обычно используется для уменьшения размера файлов. При этом каждый файл сжимается индивидуально, что помогает извлекать их и добавлять новые без сжатия или распаковки всего Zip-архива. В настоящее время использование электронных таблиц Excel (XLSX или XLS) увеличилось в повседневной деловой деятельности. Иногда файлы Excel могут быть довольно большими, но мы можем уменьшить их размер, сжав их в ZIP-архив. В этой статье вы узнаете, как сжимать файлы Excel в ZIP-архив на C# без написания сложного кода. Кроме того, вы увидите, как получить отчет о ходе сжатия при сжатии больших файлов Excel.

В этой статье будут рассмотрены следующие моменты:

C# .NET API для сжатия файлов Excel в ZIP-архив

Чтобы сжать файлы Excel в ZIP-архив, мы будем использовать Aspose.ZIP для .NET. API состоит из многочисленных функций архивирования. Поэтому вы можете скачать DLL или установить ее с помощью NuGet.

Install-Package Aspose.ZIP

Добавьте файлы XLS или XLSX в ZIP на C#

Предположим, у вас есть несколько файлов Excel (XLSX или XLS) для сжатия в ZIP-архив. Вы можете выбрать один из следующих способов выполнения задания.

C# сжать файлы Excel в ZIP с помощью FileStream

Таким образом, мы будем использовать класс FileStream для добавления файлов в ZIP-архив, вызвав функцию Archive.CreateEntry(String, FileStream).

Ниже приведены шаги для сжатия электронных таблиц Excel в ZIP с помощью FileStream:

  • Создать объект класса FileStream для выходного ZIP-архива.
  • Создайте объекты FileStream для сжимаемых файлов Excel.
  • Инициализируйте класс Archive и передайте ему экземпляр класса ArchiveEntrySettings.
  • Добавьте объекты FileStream, созданные на шаге 2, с помощью метода Archive.CreateEntry.
  • Чтобы сжать файлы, вызовите метод Archive.Save и используйте объекты FileStream (созданные на шаге 1) и экземпляр ArchiveSaveOptions в качестве параметров.

В следующем коде показано, как сжать файлы Excel в ZIP с помощью FileStream.

C# сжать файлы XLSX или XLS в ZIP с помощью FileInfo

Кроме того, мы можем использовать класс FileInfo для добавления файлов в ZIP-архив. В этом случае файлы будут загружены с помощью класса FileInfo и добавлены в ZIP-архив вызовом метода Archive.CreateEntry(String, FileInfo).

Пожалуйста, следуйте инструкциям ниже:

  • Создать объект класса FileStream для выходного ZIP-архива.
  • Создайте объекты FileInfo для сжимаемых файлов Excel.
  • Инициализируйте класс Archive и передайте ему экземпляр класса ArchiveEntrySettings.
  • Добавьте объекты FileStream, созданные на шаге 2, с помощью метода Archive.CreateEntry.
  • Чтобы сжать файлы, вызовите метод Archive.Save и используйте объекты FileStream (созданные на шаге 1) и экземпляр ArchiveSaveOptions в качестве параметров.

В следующем коде показано, как сжать файлы XLSX или XLS в ZIP с помощью FileInfo.

Сжимайте электронные таблицы Excel в ZIP, используя путь к файлу

Самый простой способ — добавить путь к файлу Excel непосредственно в метод Archive.CreateEntry:

Ниже приведены шаги для сжатия электронных таблиц Excel в ZIP с использованием пути к файлу:

  • Инициализировать класс Архив.
  • Добавьте файлы Excel, используя метод Archive.CreateEntry.
  • Для сжатия данных вызовите метод Archive.Save и используйте в качестве параметра имя выходного файла.

В следующем коде показано, как сжать файлы электронных таблиц Excel в ZIP, используя путь к файлу.

Получить отчет о ходе сжатия в C#

В случае больших файлов Excel процесс сжатия может занять много времени. Чтобы справиться с этим, библиотека сжатия ZIP C# предоставляет событие [CompressionProgressed] для непрерывной публикации обновлений.

Ниже приведены шаги для получения отчета о ходе сжатия в C#:

  • Создайте объект FileStream для большого файла Excel.
  • Инициализируйте класс Archive и передайте ему экземпляр класса ArchiveEntrySettings.
  • Получить объект ArchiveEntry из вызова метода Archive.CreateEntry.
  • Прикрепите [CompressionProgressed] к объекту ArchiveEntry.
  • Вызовите Archive.Save и используйте имя выходного файла в качестве параметра.

В следующем примере кода показано, как получить отчет о ходе сжатия в C#:

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию для тестирования API без ограничений пробной версии.

Заключение

В этой статье вы узнали, как сжимать файлы Excel в ZIP-архив на C#, используя библиотеку сжатия ZIP C#. Кроме того, вы получили достаточно знаний о том, как получить отчет о ходе сжатия при сжатии больших файлов Excel. Вы можете посетить документацию, чтобы изучить другие функции C# API сжатия ZIP.

Задайте вопрос

Вы можете сообщить нам о своих вопросах или запросах на нашем форуме.

Смотрите также