Filtrar informações em planilhas do Excel é um recurso importante. Ele permite ocultar dados irrelevantes e mostrar apenas os dados que atendem a critérios específicos. Pode haver cenários em que a filtragem de dados pode ser útil. Por exemplo, uma organização pode querer filtrar produtos de baixo desempenho do relatório de vendas para analisar e melhorar suas estratégias de vendas. Neste artigo, você aprenderá como adicionar ou remover o AutoFiltro em arquivos do Excel usando C++.

API C++ para adicionar e remover AutoFilter em arquivos do Excel

Usaremos a API Aspose.Cells for C++ para adicionar e remover AutoFilter em arquivos do Excel. É uma biblioteca nativa de C++ que permite criar, ler e modificar arquivos do Excel sem exigir a instalação do Microsoft Excel. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Cells.Cpp

Aplicar AutoFiltro em arquivos do Excel usando C++

Você pode aplicar o AutoFiltro em um intervalo de células. Os AutoFiltros permitem classificar e filtrar valores em um determinado intervalo de células. A seguir estão as etapas para adicionar AutoFiltro em arquivos do Excel.

O código de exemplo a seguir mostra como aplicar o AutoFiltro a um intervalo de células em um arquivo do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de origem
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book3.xlsx")));

// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Criando AutoFiltro fornecendo o intervalo de células
worksheet->GetIAutoFilter()->SetRange(new String("A1:B1"));

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("AutoFilter_out.xlsx")));
A imagem do arquivo de saída gerado pelo código de amostra

A imagem do arquivo de saída gerado pelo código de amostra

Adicionar AutoFiltro de Data em Arquivos do Excel usando C++

Os arquivos do Excel podem conter dados baseados em datas. Você pode se encontrar em cenários em que precisa filtrar e analisar dados com base em datas diferentes. Portanto, um filtro de data será útil em tais cenários. A seguir estão as etapas para adicionar AutoFiltro de data em arquivos do Excel.

O código de exemplo a seguir demonstra como adicionar AutoFiltro de data em arquivos do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de origem
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Chame a função AddDateFilter para aplicar o filtro
worksheet->GetIAutoFilter()->AddDateFilter(0, DateTimeGroupingType_Month, 2018, 1, 1, 0, 0, 0);

// Chame a função Refresh para atualizar a planilha
worksheet->GetIAutoFilter()->Refresh();

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("DateFilter_out.xlsx")));

Adicionar AutoFiltro de Data Dinâmica em um Arquivo do Excel usando C++

Pode haver casos em que você precise de um filtro de data mais genérico, como o mês independentemente do ano ou o mês anterior ao mês atual. Para cenários como este, você pode usar o AutoFiltro dinâmico para filtrar os dados. A seguir estão as etapas para filtrar dados usando um AutoFiltro de data dinâmica.

O código de exemplo a seguir demonstra como adicionar um AutoFiltro de data dinâmica em um arquivo do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de origem
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Chame a função DynamicFilter para aplicar o filtro
worksheet->GetIAutoFilter()->DynamicFilter(0, DynamicFilterType_Februray);

// Chame a função Refresh para atualizar a planilha
worksheet->GetIAutoFilter()->Refresh();

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("DynamicDateAutoFilter_out.xlsx")));

Aplicar filtro automático personalizado em arquivos do Excel usando C++

Caso você queira aplicar um AutoFilter personalizado, o Aspose.Cells for C++ API tem cobertura. Usando a API, você pode aplicar um AutoFiltro personalizado em arquivos do Excel com base em seus requisitos específicos. A seguir estão as etapas para adicionar AutoFiltro personalizado em arquivos do Excel.

O código de exemplo a seguir mostra como adicionar o AutoFiltro personalizado em arquivos do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de origem
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleCountryNames.xlsx")));

// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Chame a função Custom para aplicar o filtro
worksheet->GetIAutoFilter()->Custom(0, FilterOperatorType_Equal, new String("Brazil"));

// Chame a função Refresh para atualizar a planilha
worksheet->GetIAutoFilter()->Refresh();

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("CustomFilter_out.xlsx")));

Remover AutoFiltro de arquivos do Excel

Nas seções anteriores, você aprendeu como adicionar diferentes AutoFiltros em arquivos do Excel. Além de adicionar AutoFilters, você também pode removê-los usando a API Aspose.Cells for C++. A seguir estão as etapas para remover AutoFiltros de arquivos do Excel.

O código de exemplo a seguir mostra como remover o AutoFilter de um arquivo do Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de origem
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleAutoFilter.xlsx")));

// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Remover AutoFiltros
worksheet->RemoveAutoFilter();

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("RemoveAutoFilter_out.xlsx")));

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como adicionar e remover AutoFiltros de arquivos do Excel usando C++. Especificamente, você aprendeu como adicionar Default, Date, Dynamic Date e Custom AutoFilters. Você também viu como remover o AutoFilter usando Aspose.Cells para C++ API. A API fornece muitos recursos adicionais para trabalhar com arquivos do Excel. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também