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 eliminar autofiltros en archivos de Excel
- Aplicar Autofiltro en archivos de Excel usando C++
- Agregar autofiltro de fecha en archivos de Excel usando C++
- Agregar Autofiltro de Fecha Dinámica en un Archivo de Excel usando C++
- Aplicar Autofiltro personalizado en archivos de Excel usando C++
- Eliminar Autofiltro de archivos de Excel
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.
- En primer lugar, cargue el archivo de Excel utilizando la clase IWorkbook.
- Recupere la hoja de cálculo en la que desea aplicar el Autofiltro mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Aplique el Autofiltro usando IWorksheet->GetIAutoFilter()->SetRange(intrusive\ptrAspose::Cells::Systems::String valor) método.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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")));
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.
- En primer lugar, cargue el archivo de Excel utilizando la clase IWorkbook.
- Recupere la hoja de cálculo en la que desea aplicar el Autofiltro mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Aplique el Autofiltro de fecha usando IWorksheet->GetIAutoFilter()->AddDateFilter(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DateTimeGroupingType dateTimeGroupingType, Aspose::Cells::Systems::Int32 year, Aspose ::Células::Sistemas::Int32 mes, Aspose::Células::Sistemas::Int32 día, Aspose::Células::Sistemas::Int32 hora, Aspose::Células::Sistemas::Int32 minuto, Aspose:: Cells::Systems::Int32 segundo) método.
- Para actualizar la hoja de cálculo, utilice el método IWorksheet->GetIAutoFilter()->Refresh().
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.
- En primer lugar, cargue el archivo de Excel usando la clase IWorkbook.
- Recupere la hoja de trabajo en la que desea aplicar el Autofiltro mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Aplique DynamicFilter usando el método IWorksheet->GetIAutoFilter()->DynamicFilter (Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DynamicFilterType dynamicFilterType).
- Para actualizar la hoja de cálculo, utilice el método IWorksheet->GetIAutoFilter()->Refresh().
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.
- En primer lugar, cargue el archivo de Excel utilizando la clase IWorkbook.
- Recupere la hoja de trabajo donde desea aplicar el Autofiltro usando el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Aplique el Autofiltro personalizado usando IWorksheet->GetIAutoFilter()->Custom(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::FilterOperatorType operatorType1, intrusive\ptrAspose::Cells::Systems::Object criterio1) método.
- Llame al método IWorksheet->GetIAutoFilter()->Refresh() para actualizar la hoja de trabajo.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.
- En primer lugar, cargue el archivo de Excel usando la clase IWorkbook.
- Recupere la hoja de trabajo de la que desea eliminar el Autofiltro mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Elimine AutoFilter usando el método IWorksheet->RemoveAutoFilter().
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.