Filtrar información en hojas de cálculo de Excel es una característica importante. Le permite ocultar datos irrelevantes y mostrar solo los datos que cumplen criterios específicos. Puede haber escenarios en los que el filtrado de datos pueda resultar útil. Por ejemplo, una organización puede querer filtrar los productos de bajo rendimiento del informe de ventas para analizar y mejorar sus estrategias de ventas. En este artículo, aprenderá cómo agregar o quitar Autofiltro en archivos de Excel usando C++.

API de C++ para agregar y quitar autofiltro en archivos de Excel

Usaremos la API Aspose.Cells for C++ para agregar y eliminar AutoFilter en archivos de Excel. Es una biblioteca nativa de C++ que le permite crear, leer y modificar archivos de Excel sin necesidad de instalar Microsoft Excel. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Cells.Cpp

Aplicar Autofiltro en archivos de Excel usando C++

Puede aplicar Autofiltro en un rango de celdas. Los autofiltros le permiten ordenar y filtrar valores en el rango de celdas dado. Los siguientes son los pasos para agregar Autofiltro en archivos de Excel.

El siguiente código de ejemplo muestra cómo aplicar Autofiltro a un rango de celdas en un archivo de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book3.xlsx")));

// Acceda a la primera hoja de trabajo en el archivo de Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Creando Autofiltro dando el rango de celdas
worksheet->GetIAutoFilter()->SetRange(new String("A1:B1"));

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("AutoFilter_out.xlsx")));
La imagen del archivo de salida generado por el código de muestra.

La imagen del archivo de salida generado por el código de muestra.

Agregar autofiltro de fecha en archivos de Excel usando C++

Los archivos de Excel pueden contener datos basados en fechas. Es posible que se encuentre en escenarios en los que necesite filtrar y analizar datos en función de diferentes fechas. Por lo tanto, un filtro de fecha resultará útil en tales escenarios. Los siguientes son los pasos para agregar fecha Autofiltro en archivos de Excel.

El siguiente código de ejemplo demuestra cómo agregar Autofiltro de fecha en archivos de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Acceda a la primera hoja de trabajo en el archivo de Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Llame a la función AddDateFilter para aplicar el filtro
worksheet->GetIAutoFilter()->AddDateFilter(0, DateTimeGroupingType_Month, 2018, 1, 1, 0, 0, 0);

// Llame a la función Actualizar para actualizar la hoja de trabajo
worksheet->GetIAutoFilter()->Refresh();

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("DateFilter_out.xlsx")));

Agregar Autofiltro de Fecha Dinámica en un Archivo de Excel usando C++

Puede haber casos en los que necesite un filtro de fecha más genérico, como el mes independientemente del año o el mes anterior al mes actual. Para escenarios como este, puede usar el Autofiltro dinámico para filtrar los datos. Los siguientes son los pasos para filtrar datos usando un Autofiltro de fecha dinámico.

El siguiente código de ejemplo demuestra cómo agregar un Autofiltro de fecha dinámico en un archivo de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Acceda a la primera hoja de trabajo en el archivo de Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Llame a la función DynamicFilter para aplicar el filtro
worksheet->GetIAutoFilter()->DynamicFilter(0, DynamicFilterType_Februray);

// Llame a la función Actualizar para actualizar la hoja de trabajo
worksheet->GetIAutoFilter()->Refresh();

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("DynamicDateAutoFilter_out.xlsx")));

Aplicar Autofiltro personalizado en archivos de Excel usando C++

En caso de que desee aplicar un Autofiltro personalizado, Aspose.Cells for C++ API lo tiene cubierto. Con la API, puede aplicar un Autofiltro personalizado en archivos de Excel según sus requisitos específicos. Los siguientes son los pasos para agregar Autofiltro personalizado en archivos de Excel.

El siguiente código de ejemplo muestra cómo agregar Autofiltro personalizado en archivos de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleCountryNames.xlsx")));

// Acceda a la primera hoja de trabajo en el archivo de Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Llame a la función personalizada para aplicar el filtro
worksheet->GetIAutoFilter()->Custom(0, FilterOperatorType_Equal, new String("Brazil"));

// Llame a la función Actualizar para actualizar la hoja de trabajo
worksheet->GetIAutoFilter()->Refresh();

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("CustomFilter_out.xlsx")));

Eliminar Autofiltro de archivos de Excel

En las secciones anteriores, aprendió cómo agregar diferentes Autofiltros en archivos de Excel. Además de agregar Autofiltros, también puede eliminarlos mediante la API de Aspose.Cells for C++. Los siguientes son los pasos para eliminar los Autofiltros de los archivos de Excel.

El siguiente código de ejemplo muestra cómo quitar Autofiltro de un archivo de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleAutoFilter.xlsx")));

// Acceda a la primera hoja de trabajo en el archivo de Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Eliminar autofiltros
worksheet->RemoveAutoFilter();

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("RemoveAutoFilter_out.xlsx")));

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, aprendió cómo agregar y quitar filtros automáticos de archivos de Excel usando C++. Específicamente, ha aprendido cómo agregar filtros automáticos predeterminados, de fecha, de fecha dinámica y personalizados. También ha visto cómo eliminar el Autofiltro usando Aspose.Cells for C++. La API proporciona muchas funciones adicionales para trabajar con archivos de Excel. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también