Aplicar filtro avanzado de Microsoft Excel para mostrar registros que cumplen con criterios complejos usando C++
Escenarios de uso posibles
Microsoft Excel permite aplicar Filtro Avanzado en datos de hojas de cálculo para mostrar registros que cumplen criterios complejos. Puedes aplicar Filtro Avanzado con Microsoft Excel usando su comando Datos > Avanzadas como se muestra en esta captura.
Aspose.Cells también permite aplicar el filtro avanzado usando el método GetAdvancedFilter(). Al igual que en Microsoft Excel, acepta los siguientes parámetros.
isFilter
Indica si se está filtrando la lista en su lugar.
listRange
El rango de la lista.
criteriaRange
El rango de criterios.
copyTo
El rango donde se copian los datos.
uniqueRecordOnly
Solo muestra o copia filas únicas.
Aplicar Filtro Avanzado de Microsoft Excel para Mostrar Registros que Cumplen Criterios Complejos
El siguiente código de ejemplo aplica el filtro avanzado en el Archivo de Excel de muestra y genera el Archivo de Excel de salida. La captura de pantalla muestra ambos archivos para comparación. Como puedes ver en la captura, los datos han sido filtrados en el archivo de Excel de salida de acuerdo con criterios complejos.
Código de muestra
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Source directory path
U16String sourceDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outputDir(u"..\\Data\\02_OutputDirectory\\");
// Load your source workbook
Workbook workbook(sourceDir + u"sampleAdvancedFilter.xlsx");
// Access first worksheet
Worksheet ws = workbook.GetWorksheets().Get(0);
// Apply advanced filter on range A5:D19 and criteria range is A1:D2
// Besides, we want to filter in place
// And, we want all filtered records not just unique records
ws.Advanced_Filter(true, u"A5:D19", u"A1:D2", u"", false);
// Save the workbook in xlsx format
workbook.Save(outputDir + u"outputAdvancedFilter.xlsx", SaveFormat::Xlsx);
std::cout << "Advanced filter applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}