Os arquivos ZIP podem conter vários arquivos, comumente usados para reduzir o tamanho dos arquivos. Ao mesmo tempo, cada arquivo é compactado individualmente, o que ajuda a extraí-los e adicionar novos sem compactar ou descompactar todo o arquivo Zip. Atualmente, o uso de planilhas Excel (XLSX ou XLS) tem aumentado no dia a dia das empresas. Às vezes, os arquivos do Excel podem ficar muito grandes, mas podemos reduzir seu tamanho compactando-os em um arquivo ZIP. Neste artigo, você aprenderá como compactar arquivos do Excel em um arquivo ZIP em C# sem escrever códigos complexos. Além disso, você verá como obter o relatório de progresso da compactação enquanto compacta os arquivos grandes do Excel.
Os seguintes pontos serão abordados neste artigo:
- C# .NET API para compactar arquivos do Excel em um arquivo ZIP
- Adicionar arquivos XLS ou XLSX ao ZIP em C#
- Obtenha o relatório de progresso da compactação em C#
API C# .NET para compactar arquivos do Excel em um arquivo ZIP
Para compactar os arquivos do Excel em um arquivo ZIP, usaremos Aspose.ZIP for .NET. A API consiste em vários recursos de arquivamento. Portanto, você pode baixar a DLL ou instalá-la usando NuGet.
Install-Package Aspose.ZIP
Adicionar arquivos XLS ou XLSX ao ZIP em C#
Suponha que você tenha vários arquivos Excel (XLSX ou XLS) para compactar em um arquivo ZIP. Você pode escolher uma das seguintes maneiras de fazer o trabalho.
C# comprime arquivos do Excel em ZIP usando FileStream
Desta forma, usaremos a classe FileStream para adicionar arquivos ao arquivo ZIP chamando a função Archive.CreateEntry(String, FileStream).
A seguir estão as etapas para compactar planilhas do Excel em ZIP usando FileStream:
- Crie um objeto da classe FileStream para o arquivo ZIP de saída.
- Crie objetos de FileStream para os arquivos do Excel a serem compactados.
- Inicialize a classe Archive e passe para ela uma instância da classe ArchiveEntrySettings.
- Adicione objetos FileStream criados na etapa 2 usando o método Archive.CreateEntry.
- Para compactar os arquivos, chame o método Archive.Save e use os objetos de FileStream (criado no passo 1) e a instância de ArchiveSaveOptions como parâmetros.
O código a seguir mostra como compactar arquivos do Excel em ZIP usando FileStream.
C# comprime arquivos XLSX ou XLS em ZIP usando FileInfo
Como alternativa, podemos usar a classe FileInfo para adicionar arquivos ao arquivo ZIP. Neste caso, os arquivos serão carregados usando a classe FileInfo e adicionados ao arquivo ZIP chamando o método Archive.CreateEntry(String, FileInfo).
Por favor, siga os passos mencionados abaixo:
- Crie um objeto da classe FileStream para o arquivo ZIP de saída.
- Crie objetos de FileInfo para os arquivos do Excel a serem compactados.
- Inicialize a classe Archive e passe para ela uma instância da classe ArchiveEntrySettings.
- Adicione objetos FileStream criados na etapa 2 usando o método Archive.CreateEntry.
- Para compactar os arquivos, chame o método Archive.Save e use os objetos de FileStream (criado no passo 1) e a instância de ArchiveSaveOptions como parâmetros.
O código a seguir mostra como compactar arquivos XLSX ou XLS em ZIP usando FileInfo.
Compacte planilhas do Excel em ZIP usando o caminho do arquivo
A maneira mais simples é adicionar um caminho de arquivo do Excel diretamente ao método Archive.CreateEntry:
A seguir estão as etapas para compactar planilhas do Excel em ZIP usando um caminho de arquivo:
- Inicialize a classe Archive.
- Adicione arquivos Excel usando o método Archive.CreateEntry.
- Para compactar os dados, chame o método Archive.Save e use o nome do arquivo de saída como parâmetro.
O código a seguir demonstra como compactar arquivos de planilha do Excel em ZIP usando um caminho de arquivo.
Obtenha o relatório do progresso da compactação em C#
No caso de arquivos grandes do Excel, o processo de compactação pode demorar muito para ser concluído. Para lidar com isso, a biblioteca de compactação C# ZIP fornece o evento [CompressionProgressed] para postar atualizações continuamente.
A seguir estão as etapas para obter o relatório do progresso da compactação em C#:
- Crie um objeto de FileStream para o grande arquivo Excel.
- Inicialize a classe Archive e passe para ela uma instância da classe ArchiveEntrySettings.
- Obtenha um objeto de ArchiveEntry da chamada do método Archive.CreateEntry.
- Anexe [CompressionProgressed] ao objeto ArchiveEntry.
- Chame Archive.Save e use o nome do arquivo de saída como parâmetro.
O exemplo de código a seguir mostra como obter o relatório do progresso da compactação em C#:
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para testar a API sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como compactar arquivos do Excel em um arquivo ZIP em C# usando uma biblioteca de compactação C# ZIP. Além disso, você obteve conhecimento suficiente sobre como obter o relatório de progresso da compactação ao compactar grandes arquivos do Excel. Você pode visitar a documentação para explorar outros recursos da API de compactação C# ZIP.
Faça uma pergunta
Você pode nos enviar suas perguntas ou dúvidas em nosso fórum.